2016-06-09 36 views
5

我在JavaFX中有點新,我沒有找到任何答案。如何處理任務中的不同異常?

我正試圖使用​​任務在數據庫中做一些背景計算。問題如下:我如何處理異常(SQLException,IOException等)在我的task.SetOnFailed(e - > ....)函數?我試過這個:e.getSource()。getException()。getMessage()但我不認爲這是正確的方式來做到這一點。

+1

謝謝,它的工作原理! 您的評論應該是答案。 –

回答

5

你可以只檢查異常的類型:

Task<Something> myTask = new Task<Something>() { 
    @Override 
    public Something call() throws Exception { 
     // code... 
     return something ; 
    } 
}; 

myTask.setOnFailed(e -> { 
    Throwable exc = myTask.getException(); 

    if (exc instanceof SQLException) { 
     // ... 
    } else if (exc instanceof IOException) { 
     // ... 
    } else { 
     // ... 
    } 
}); 
+0

經過測試,你可以修改這一行:Exception exc =(Exception)myTask.getException(); –

+1

嗯,是的,對不起:更新;應該按現在編譯。 –