Frage
Ich habe heute auf ein Problem gestoßen. Wenn im folgenden Code eine Laufzeitausnahme ausgelöst wird, wird der nachfolgende Code noch ausgeführt? Muss ich nach der Ausnahme eine return hinzufügen?
public void add (int index, e element) {if (size> = elements.length) {werfen neue runTimeexception ("Die Bestellentabelle ist voll, kann nicht hinzugefügt werden"); //zurückkehren; // ist es notwendig? } ....}
Um diese Frage zu beantworten, habe ich ein paar Code -Teile geschrieben, um sie zu testen, und die Ergebnisse sind wie folgt:
// Code 1Public static void test () löst eine Ausnahme aus (neue Ausnahme ("Parameter aus Grenzen"); System.out.println ("After Exception"); // Kompilierungsfehler, "Unzugängliche Anweisung"} // Code 2try {Neue Ausnahme werfen ("Parameter aus Grenzen"); } catch (Ausnahme e) {e.printstacktrace ();} System.out.println ("After Exception"); // kann ausgeführt werden // Code 3if (true) {neue Ausnahme werfen ("Parameter aus Grenzen"); } System.out.println ("After Exception"); // Ausnahme wird ausgelöst, wird nicht ausgeführtZusammenfassen:
Wenn eine Ausnahme vor einem Code-Stück ausgelöst wird und die Ausnahme nicht erfasst wird, generiert dieser Code einen Kompilierungsfehler "Unzugängliche Anweisung". Als Code 1
Wenn eine Ausnahme vor ein Stück Code geworfen wird und diese Ausnahme von try...catch , wenn derzeit keine neue Ausnahme in die catch -Anweisung ausgelöst wird, kann der Code ausgeführt werden, ansonsten wie Artikel 1. wie Code 2 wie Code 2
Wenn eine Ausnahme in eine bedingte Erklärung ausgelöst wird, kann das Programm kompiliert werden, die nachfolgenden Aussagen werden jedoch nicht ausgeführt. Als Code 3
Fassen Sie auch den Unterschied zwischen der Laufzeitausnahme und der Nicht-Runtime-Ausnahme zusammen:
Laufzeitausnahmen sind Ausnahmen RuntimeException -Klasse und ihrer Unterklassen und nicht überprüfte Ausnahmen, wie NullPointerException , IndexOutOfBoundsException usw. Da solche Ausnahmen entweder Systemexempfungen sind und nicht behandelt werden können, wie z. B. Netzwerkprobleme.
Entweder ist es ein Programmlogikfehler, wie z. B. eine Null -Zeiger -Ausnahme; Die JVM muss aufhören zu rennen, um diesen Fehler zu korrigieren, sodass die Laufzeitausnahme ohne Verarbeitung behandelt werden kann (natürlich kann sie auch erfassen oder ausgeben) und das JVM erledigt ihn selbst. Java Runtime catch automatisch RuntimeException des throw an, stoppt dann den Thread und druckte die Ausnahme aus.
Nicht-Runtime-Ausnahmen sind andere Ausnahmen als RuntimeException . Sie alle gehören zur Exception und ihren Unterklassen im Typ und werden überprüft, ob es überprüft werden. Nicht rechtzeitige Ausnahmen müssen verarbeitet werden (fangen oder übergeben) und wenn nicht verarbeitet wird, hat das Programm einen Kompilierfehler. Im Allgemeinen ist Exception , die in der API geschrieben wurde, die throws , keine RuntimeException .
Häufige Laufzeitausnahmen:
Häufige nicht rechtzeitige Ausnahmen:
Okay, das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, der Inhalt dieses Artikels wird für das Studium oder die Arbeit aller Hilfe helfen. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen.