У меня есть это в классе, который реализует Callable:
public class MasterCrawler implements Callable {
public Object call() throws SQLException {
resumeCrawling();
return true;
}
//more code with methods that throws an SQLException
}
В другом классе, который выполняет этот Callable, что-то вроде этого:
MasterCrawler crawler = new MasterCrawler();
try{
executorService.submit(crawler); //crawler is the class that implements Callable
}(catch SQLException){
//do something here
}
Но я получил ошибку и сообщение IDE о том, что SQLException никогда не выбрасывается. Это потому что я выполняю в ExecutorService?
ОБНОВЛЕНИЕ : Таким образом, отправка не выдает исключение SQLException. Как я могу выполнить Callable (запустить как поток) и поймать исключение?
РЕШИТЬ:
public class MasterCrawler implements Callable {
@Override
public Object call() throws Exception {
try {
resumeCrawling();
return true;
} catch (SQLException sqle) {
return sqle;
}
}
}
Future resC = es.submit(masterCrawler);
if (resC.get(5, TimeUnit.SECONDS) instanceof SQLException) {
//do something here
}