我目前正在嘗試使用JavaFX 8構建應用程序,但是我無法獲取未捕獲的異常處理。由於這篇文章(https://bugs.openjdk.java.net/browse/JDK-8100937)它應該用JavaFX 8(Lombard)修復/實現,但我在網上找不到任何東西...JavaFX 8(Lombard)全局異常處理
我不想走黑客的路,可能你給我一個暗示在哪裏尋找更多信息?
我目前正在嘗試使用JavaFX 8構建應用程序,但是我無法獲取未捕獲的異常處理。由於這篇文章(https://bugs.openjdk.java.net/browse/JDK-8100937)它應該用JavaFX 8(Lombard)修復/實現,但我在網上找不到任何東西...JavaFX 8(Lombard)全局異常處理
我不想走黑客的路,可能你給我一個暗示在哪裏尋找更多信息?
據我所知,沒有什麼值得的;您只需使用java.lang.Thread中的常規未捕獲異常處理。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class UncaughtExceptionTest extends Application {
@Override
public void start(Stage primaryStage) {
// start is called on the FX Application Thread,
// so Thread.currentThread() is the FX application thread:
Thread.currentThread().setUncaughtExceptionHandler((thread, throwable) -> {
System.out.println("Handler caught exception: "+throwable.getMessage());
});
StackPane root = new StackPane();
Button button = new Button("Throw exception");
button.setOnAction(event -> {
throw new RuntimeException("Boom!") ;
});
root.getChildren().add(button);
Scene scene = new Scene(root, 150, 60);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
你能給出一個你正在做的事情的例子(代碼)導致這個問題? – SnakeDoc
這不是一個特殊的代碼會導致麻煩,我只是沒有意義尋找關於新實現的異常處理的進一步信息。全局異常處理意味着捕獲未處理的異常,向用戶輸出一條短消息,然後退出。 – bash0r