In Java kann jede Anweisung, die eine Ausnahme auslösen könnte, mit try...catch abgefangen werden. Fügen Sie Anweisungen, die Ausnahmen verursachen können, in try { ... } ein und erfassen Sie dann mit Catch die entsprechende Ausnahme und ihre Unterklassen.
Mehrere Catch-Anweisungen
Sie können mehrere Catch-Anweisungen verwenden. Jeder Catch erfasst die entsprechende Ausnahme und ihre Unterklasse. Nachdem die JVM die Ausnahme abgefangen hat, stimmt sie mit der Catch-Anweisung von oben nach unten überein. Nach dem Abgleich mit einem bestimmten Catch führt sie den Catch-Codeblock aus und stimmt dann nicht mehr überein. (Empfohlenes Lernen: Java-Kurs )
Vereinfacht ausgedrückt: Mehrere CATCH-Anweisungen können nur ausgeführt werden. Zum Beispiel:public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(e); } }Wenn es mehrere Fänge gibt, ist die Reihenfolge der Fänge sehr wichtig: Unterklassen müssen zuerst geschrieben werden. Beispiel:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println("IO error"); } catch (UnsupportedEncodingException e) { // 永远捕获不到 System.out.println("Bad encoding"); } }Für den obigen Code kann die UnsupportedEncodingException-Ausnahme nie abgefangen werden, da es sich um eine Unterklasse von IOException handelt. Wenn eine UnsupportedEncodingException-Ausnahme ausgelöst wird, wird sie von Catch (IOException e) { ... } abgefangen und ausgeführt.
Daher ist die richtige Schreibweise, die Unterklasse an die erste Stelle zu setzen:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (UnsupportedEncodingException e) { System.out.println("Bad encoding"); } catch (IOException e) { System.out.println("IO error"); } }
Das obige ist der detaillierte Inhalt vonSo fangen Sie eine Ausnahme in Java ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!