2
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javafx.concurrent.Task;
public class T {
public static void main(String[] args) {
ExecutorService executorService = Executors.newSingleThreadExecutor();
Task t = new Task(){
@Override
protected Object call() throws Exception {
System.out.println(1/0);
return null;
}
};
//My progresss Bar in JavaFX
//Progressbar.progressProperty().bind(t.progressProperty());
Future future = executorService.submit(t);
try {
future.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //returns null if the task has finished correctly.
executorService.shutdown();
}
}
私はこのようなコードを持っています。私のコードタスクはSQLExceptionをスローするオブジェクト呼び出しの内部メソッド呼び出しを持っていますが、実行呼び出しサービスの中でも実行呼び出しサービスの中でもキャッチできません。javafxのプログレスバーしかし、それはまた、将来を使用するとき、メインUIがハングアップするように立ち往生するように見える。将来的にはプログレスバーは機能しません。java fxアプリケーションでタスク例外をキャッチする方法は?