2016-06-09 21 views
5

Sono un po 'nuovo in JavaFX e non ho trovato alcuna risposta a questo.Come gestire le diverse eccezioni nell'attività?

Sto cercando di utilizzare Task per eseguire alcuni calcoli in background in un database. Il problema è il seguente: Come posso gestire le eccezioni (SQLException, IOException ecc ...) nella mia funzione task.SetOnFailed (e -> ....)?

Ho provato questo: e.getSource(). GetException(). GetMessage() ma non penso che sia il modo giusto per farlo.

+1

Grazie, funziona! Il tuo commento dovrebbe essere la risposta. –

risposta

5

Si può solo controllare il tipo di eccezione:

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

Dopo il test, è possibile modificare questa riga: Eccezione exc = (Eccezione) myTask.getException(); –

+1

Ah, sì, mi dispiace: aggiornato; dovrebbe compilare come è ora. –

Problemi correlati