Die Ausnahmebehandlung ist in passive Behandlung (wenn Sie nicht selbst damit umgehen können, werfen Sie Würfe an der Stelle, an der sie aufgerufen wird, die Ausnahme wird nicht gelöst, sondern nur geworfen) und aktive Behandlung unterteilt Behandlung (Abfangen von Ausnahmen. Das Abfangen von Ausnahmen erfolgt durch Try-Catch-Anweisungen oder Try-Catch-finally-Anweisungen).
(Empfohlenes Tutorial: Java-Einführungs-Tutorial)
Negative Verarbeitung:
Syntax:
public void m1() throws 异常类名1,异常类名2{}
Kompilierung passieren lassen.
Wenn es sich bei der ausgelösten Ausnahme um eine Nicht-Laufzeit-Ausnahme (überprüft) handelt, muss der Aufrufer dieser Methode sie behandeln.
Wenn es sich bei der ausgelösten Ausnahme um eine Laufzeitausnahme (ungeprüft) handelt, kann sie behandelt werden oder nicht.
Positive Behandlung: (Ausnahme abfangen)
Die Ausnahme direkt abfangen und behandeln.
Syntax:
try{ //异常代码 }catch(异常类名 引用名){ //当异常产生执行的代码 }
Der Catch-Code-Block nach dem Versuch kann nur mit einem erfolgreich übereinstimmen.
Wenn die nach „catch“ deklarierte Ausnahme eine übergeordnete Klasse ist, sind die Ausnahmen, die sie abfangen kann, sie selbst + alle Ausnahmen der Unterklasse (eine Manifestation von Polymorphismus).
Hinweis: Wenn der Catch-Codeblock Ausnahmen erfasst, muss die Unterklassenausnahme vor der übergeordneten Klassenausnahme definiert werden, andernfalls tritt ein Kompilierungsfehler auf.
(Empfohlenes Video-Tutorial: Java-Video-Tutorial )
Endlich Codeblock: Der Code in diesem Codeblock wird definitiv ausgeführt und wird häufig zum Schließen von Ressourcen verwendet.
try{ }catch(){ }finally{ //无论是否产生异常,一定会去执行的代码 }
Hinweis: Definieren Sie keine Return-Anweisung im „finally“-Codeblock.
Beispiel:
package work; import java.io.EOFException; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.SQLException; import java.util.Scanner; /** * @author 超伟 * @date 2019年5月13日 * @version 1.0.0 */ public class t4 { public static void main(String[] args) { System.out.println("main1"); int n; Scanner sc = new Scanner(System.in); n = sc.nextInt(); ma(n); System.out.println("main2"); } public static void ma(int n){ try { System.out.println("m1"); mb(n); System.out.println("m2"); } catch (EOFException e) { //e.printStackTrace(); System.out.println("EOFException "); } catch (IOException e) { System.out.println("IOException e111"); }catch (SQLException e) { System.out.println("SQLException"); }catch (Exception e) { System.out.println("Exception"); }finally{ System.out.println("in finally"); } } public static void mb(int n) throws Exception { System.out.println("mb1"); if (n==1) { throw new EOFException(); } if (n==2) { throw new FileNotFoundException(); } if (n==3) { throw new SQLException(); } if (n==4) { throw new NullPointerException(); } System.out.println("mb2"); } } 程序运行结果为: main1 1 m1 mb1 EOFException in finally main2
Das obige ist der detaillierte Inhalt vonSo behandeln Sie Ausnahmen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!