Diskuze: Umístění try a catch
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Jde o to, že potom není vidět co přesně chybu způsobilo. Také není dobré odchytávat tak obecnou výjimku jako je Exception. Někde hlouběji může dojít k významné chybě a tobě se vypíše jen "Chyba!" a budeš si myslet, že to způsobilo např. dělení nulou, místo toho, aby ses dozvěděl čím je to skutečně způsobené a opravil to.
Ale v tomto triviálním případě je to asi jedno.
Jo jasně děkuju moc a co například tady ?
private void preskoc() {
Button btn = new Button();
anchorPane.getChildren().add(btn);
btn.setOnKeyPressed(new EventHandler<KeyEvent>() {
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.SPACE) {
mediaPlayer.stop();
Node node;
try {
node = (Node) FXMLLoader.load(getClass().getResource("Okno.fxml"));
anchorPane.getChildren().setAll(node);
} catch (IOException e) {
System.out.println(e);
}
}
}
});
}
Může být, ale tu výjimku bych zabalil jako UncheckedIOException a poslal dál.
To moc nevím co znamená mohl by si mi to prosím vysvětlit ?
Místo toho výpisu dej
throw new UncheckedIOException(e);
Když nemáš jak na výjimku reagovat, tak je lepší ji nechat, než vypisovat do konzole.
Na druhou stranu, pokud děláš věc kterou budeš vypouštět na veřejnost tak se hodí udělat nějaký univerzální Exception handler a dát jeden trycatch na nejvyšší level, ať aplikace místo padání vyhazuje tvojí chybovou hlášku. Vypadá to pro uživatele mnohem přívětivěj.
Jo díky moc super rada
Zobrazeno 9 zpráv z 9.