[JAVA] Informationen zur Ausnahmebehandlung

Was ist eine Ausnahme

Ausnahmen sind Objekte, die Sie darüber informieren, dass in Ihrem Programm etwas Unerwartetes passiert ist und die Verarbeitung nicht fortgesetzt werden kann. Ausnahmen erleichtern das Lesen Ihres Codes, da Sie die normale Verarbeitung Ihres Codes in gewissem Maße von der obigen Verarbeitung trennen können.

Unterschied zwischen Fehler und Ausnahme

Probleme während der Java-Ausführung können in zwei Typen unterteilt werden: Fehler und Ausnahme.

Error Situationen, die vom Programm nicht behandelt werden können, z. B. Probleme in der Ausführungsumgebung. Das Programm kann nicht fortgesetzt werden und wird beendet.

Ausnahme Eine Situation, die vom Programm behandelt werden kann. Im Gegensatz zu Fehlern können Sie das Programm fortsetzen, ohne den Betrieb zu beenden.

Ausnahme prüfen

Beim Schreiben einer Methode handelt es sich um eine aktivierte Ausnahme, die wütend wird, wenn Sie keine Ausnahmebehandlung schreiben, und eine aktivierte Ausnahme ist im Grunde eine Ausnahme, die nicht vermieden werden kann, selbst wenn Sie das richtige Programm schreiben. Beispielsweise ist die Datei, auf die Sie verweisen möchten, beschädigt oder es tritt ein DB-Fehler auf. Überprüfte Ausnahmen sind vom Compiler überprüfte Ausnahmeverarbeitung und richten sich an Exection und seine Unterklassen.

Deaktivierte (aktivierte) Ausnahme

Dies ist eine Ausnahme, bei der der Compiler nicht prüft, ob die Ausnahmebehandlung beschrieben wurde. Nicht aktivierte Ausnahmen werden vom Programmierer willkürlich geschrieben und sind für die RuntimeExcepiton-Klasse und ihre Unterklassen vorgesehen. Nicht aktivierte Ausnahmen sind grundsätzlich vermeidbare Fehler und nicht obligatorisch.

main.java


public static void main (String[] args) {

      int[] ary = {1, 2, 3};
    
      System.out.println(ary[3]);
}

Der obige Code fordert, dass der vierte angezeigt wird, obwohl das Array nur drei Elemente enthält. Bei der Ausführung ist dies wie folgt.

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

Ich habe die Nachricht erhalten, dass ich versucht habe, außerhalb des Bereichs des Arrays zu suchen.

Fügen wir dem die Ausnahmebehandlung hinzu und führen Sie sie aus.

main.java


class Main{
    public static void main(String args[]){
        try{
            int[] ary = {1, 2, 3};

            System.out.println(ary[3]);
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println("Ausnahme");
        }
    }
}

Ausführungsergebnis

Ausnahme

Ausnahmebehandlung lief.

versuche ~ catch ~ finally-Anweisung

sample.java


class Sample {
    public static void main (String[] args) {
        int ary[] = {1, 2, 3};

        System.out.println("Start");

            try{
                for (int i = 0; i < 4; i++){
                    System.out.println(n[i]);
                }
            }
            catch(ArrayIndexOutOfBoundsException e){
                System.out.println("Über den Bereich des Arrays hinaus");
            }
            finally{
                System.out.println("Ausgabearray");
            }

            System.out.println("Verarbeitung beenden");
        }
}

Beschreiben Sie den Prozess, der im try-Teil eine Ausnahme verursachen kann, und schreiben Sie den Prozess, wenn im catch-Teil eine Ausnahme auftritt. Sie können Catch-Blöcke auch nach Art der Ausnahme trennen. Beschreibt den letzten Prozess, der im letzten Teil ausgeführt wird.

werfen und wirft

throw Zusätzlich zur Ausnahmebehandlung durch try ~ catch gibt es eine Ausnahmebehandlung namens throw, mit der Sie eine Ausnahme selbst auslösen können.

sample.java



    void test (int num) { 
        if(num == 0) { 
            throw new IllegalArgumentException("Ungültiges Argument"); 
        }
    }

In der Testmethode wird, obwohl ein numerischer Typ namens num als Argument angegeben ist, geschrieben, um zu verarbeiten, wenn num in Minuten Minuten 0 ist.

Bei der Ausführung ist dies wie folgt.

throw new IllegalArgumentException("Ungültiges Argument");

throws Der Name ähnelt dem von throw, der Verarbeitungsinhalt ist jedoch unterschiedlich. Throws können an den Aufrufer aufgerufen werden, wenn die Ausnahme vom Aufrufer und nicht innerhalb der Methode behandelt werden soll.

sample.java


import java.io.FileNotFoundException;
import java.io.FileReader;
 
class Sample {
    public static void main (String[] args) {
        System.out.println("Ausnahmewurf");
 
        try {
            methodA(); 
        } catch(FileNotFoundException e) {
            System.err.println(e.getMessage());
        } 
    }
 
    void methodA() throws FileNotFoundException {
        FileReader aFile = new FileReader("aFile.txt");
    }
}

Ausführungsergebnis

aFile.txt (No such file or directory)
Die Verarbeitung ist beendet

Recommended Posts

Informationen zur Ausnahmebehandlung
Informationen zur Ausnahmebehandlung
Informationen zur Behandlung von Ruby-Ausnahmen
Ausnahmebehandlung
Ausnahmebehandlung Ausnahme
[Java] Informationen zur Behandlung von Try-Catch-Ausnahmen
Java-Ausnahmebehandlung?
Behandlung von Ruby-Ausnahmen
Ruby-Ausnahmebehandlung
[Java] Ausnahmebehandlung
☾ Java / Ausnahmebehandlung
Informationen zur Behandlung von Java-Ausnahmen
Behandlung von Java-Ausnahmen
[Für Java-Anfänger] Informationen zur Ausnahmebehandlung
Praxis der Ausnahmebehandlung (ArithmeticException)
Spring Boot-Ausnahmebehandlung
Klassen, die eine Ausnahmebehandlung erfordern
Javas erste Ausnahmebehandlung (Denkmal)
[Java] Praxis der Ausnahmebehandlung [Ausnahme]
[Ruby] Ausnahmebehandlung in Funktionen
Ausnahme
Verwendungsregeln für die Behandlung von Java-Ausnahmen
Über =
[Java Silver] (Ausnahmebehandlung) Informationen zu den Anweisungen try-catch-finally und try-with-resource
Ausnahmebehandlungstechniken in Java
[Inhouse-Studiensitzung] Behandlung von Java-Ausnahmen (26.04.2017)
Informationen zur Fehlerbehandlung der Kommentarfunktion
[Rails] Wie schreibe ich eine Ausnahmebehandlung?
Ausnahmebehandlung mit einer Fluidschnittstelle
Schrittweises Verständnis der Behandlung von Java-Ausnahmen
[Einführung in Java] Informationen zur Ausnahmebehandlung (try-catch-finally, aktivierte Ausnahme, nicht aktivierte Ausnahme, Würfe, Würfe)
Über method.invoke
Über Kotlin
Über attr_accessor
Über Hinemos
Über die Vererbung
Über Docker
Über Schienen 6
Über den Frühling ③
[Ruby] Ausnahmebehandlung, falls angegeben, zurückgeben
Über Aufzählung
Über Polymorphismus
Über Optional
Über Hash
Über JitPack
Darüber ()
Über die Kapselung
Über JAVA_HOME
Über statische
Über Ausnahmen
Selbst gemachte Ausnahme
Java (Ausnahmebehandlung, Threading, Sammlung, Datei-E / A)
Über den Umfang
[Maven] Über Maven