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.
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.
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.
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.
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.
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