Wirf eine Ausnahme
Es gibt drei Formen von Ausnahmen, einer ist ein Wurf, einer wirft und der andere ist automatisch, Ausnahmen im System zu werfen. Die Ähnlichkeiten und Unterschiede zwischen ihnen unten.
Das System wirft automatisch Ausnahmen aus. wie:
public static void main (String [] args) {int a = 5, b = 0;
Das System wirft automatisch eine Arithmeticexception -Ausnahme aus:
Ausnahme in Thread "Haupt" java.lang.arithmeTexception: / by zeroat test.exceptiontest.main (exceptionTest.java:62)
Wie
public static void main (String [] args) {String S = "ABC";
Das System wirft automatisch eine NumberFormatexception -Ausnahme aus:
Ausnahme in Thread "Haupt" java.lang.numberformatexception: Für Eingabezeichenfolge: "ABC" at sun.misc.floatingdecimal.readjavaFormatString (floatingdecimal.java: 1224) bei Java.lang.double.ParseDoulble (double test.exceptiontest.main (exceptionTest.java:62)
werfen
Throw ist eine Aussage, die eine Ausnahme macht.
Syntax: Throw (Ausnahmeobjekt);
wie:
werfen e;
Es wird im Allgemeinen verwendet, wenn ein Programm eine bestimmte Logik hat und der Programmierer aktiv eine Ausnahme eines bestimmten Typs ausführt. wie:
public static void main (String [] args) {String S = "ABC"; /function ();
Eine Ausnahme wird ausgelöst:
Ausnahme im Thread "Haupt" java.lang.numberformatexceptionat test.exceptiontest.main (exceptionTest.java:67)
wirft
Throws ist eine Erklärung, dass die Methode eine Ausnahme ausgeben kann. (Wenn Sie eine Methode deklarieren, bedeutet dies, dass die Methode eine Ausnahme ausgeben kann)
Syntax: [(Modifikator)] (Rückgabewerttyp) (Methodenname) ([Parameterliste]) [Throws (Ausnahmeklasse)] {......}
wie:
public void function () löst Ausnahme {......} aus
Wenn eine Methode eine Ausnahme ausgelöst hat, wird sie verwendet, um eine Ausnahme zu deklarieren, die möglicherweise geworfen wird, und sie dann an das Methodenprogramm übergeben, das sie aufruft. wie:
public static void function () löscht numberformatexception {string S = "ABC"; catch (numberformatexception e) {System.err.println ("Nicht Datentyp kann nicht konvertiert werden");
Die Verarbeitungsergebnisse sind wie folgt:
Nicht-Daten-Typen können nicht konvertiert werden.
Vergleich zwischen Wurf und Würfen
1. Würfe erscheint in der Methodenfunktionsüberwendung;
2. Würfen zeigen eine Ausnahme an, und diese Ausnahmen können nicht unbedingt auftreten.
3. Beide sind negativ mit Ausnahmen (das Negative bedeutet hier nicht, dass diese Methode nicht gut ist). durch die Funktion erledigt.
Gute Programmiergewohnheiten:
1. Beim Schreiben eines Programms wird {...} catch {...} normalerweise verwendet, um es für Teile zu fangen und zu verarbeiten, die möglicherweise Ausnahmen haben können;
2. Nachdem Sie die Ausnahme mit Try {...} catch {...} erhalten haben, müssen Sie sie in Catch {...} verarbeiten, auch wenn es sich um die einfachste Ausgabe -Anweisung oder E -Eingabe handelt. );
3. Wenn Sie Ausnahmen im IO -Eingangs- und Ausgabestream fangen, müssen Sie endlich {...} hinzufügen, um den Eingangs- und Ausgabestream nach dem Versuch zu schließen {...} catch {...};
4. Wenn eine bestimmte Ausnahme in den Funktionskörper geworfen wird, ist es am besten, den Funktionsnamen Würfe hinzuzufügen und dann der oberen Funktion zu übergeben, die sie zur Verarbeitung aufruft.
Zum Beispiel:
Wirt E1, E2, E3 nur mit, dass diese Methode diese Ausnahmen ausführen kann, und der Anrufer der Methode muss diese Ausnahmen möglicherweise verarbeiten, und diese Ausnahmen E1, E2, E3 können vom Funktionskörper erzeugt werden.
Throw macht deutlich, dass diese Ausnahme an diesen Ort geworfen werden soll.
wie:
void doa (int a) löscht ioException, {try {......} catch (exception1 e) {throw e; a! = b) Neue Ausnahme werfen3 ("benutzerdefinierte Ausnahme");}
Es kann 3 Ausnahmen im Codeblock (Ausnahme1, Ausnahme2, Ausnahme3) geben.
Wenn eine Ausnahme -Ausnahme generiert wird, wird sie wieder erfasst und erneut geworfen, und der Anrufer der Methode wird damit umgegangen.
Wenn eine Ausnahme2 -Ausnahme generiert wird, behandelt die Methode sie selbst (d. H. System.out.println ("Fehler!");). Daher wirft diese Methode keine Ausnahmen mehr nach außen nach außen, und Sie müssen keine Ausnahme in void doa () ausnehmen1, Exception3.
AUSSCHLIESSUNG IN EINEM METHER SINGEN DER METHODE IST EINER ERFAHREN.
Die Wurfanweisung wird in der Methodekörper verwendet, um anzuzeigen, dass eine Ausnahme ausgelöst wird und von den Aussagen in der Methode -Körperschaft verarbeitet wird.
Die Throws -Anweisung wird nach der Methodenerklärung verwendet, was darauf hinweist, dass eine Ausnahme vom Anrufer der Methode ausgelöst und behandelt wird.
Wirkt sich hauptsächlich an, dass diese Methode diese Art von Ausnahme auswirft, sodass sein Anrufer diese Ausnahme erfasst.
Throw ist eine bestimmte Aktion, um eine Ausnahme nach außen zu machen. Es wird also eine Ausnahmeinstanz ausgelöst.
Würfe bedeutet, dass Sie diese Möglichkeit und diese Tendenz haben.
Wenn Sie werfen, das heißt, Sie haben diese Tendenz in die Realität umgewandelt.
Wenn es sich um eine Systemausnahme handelt, können Sie nichts tun und eine Ausnahme der Methode machen, da die Systemausnahme automatisch vom System erfasst werden kann. -Level -Funktion zur Lösung des Problems ist tatsächlich effektiv, es ist dasselbe. Ich habe jedoch viele Informationen überprüft.
Wenn es sich um eine von Ihnen selbst definierte Ausnahme handelt, müssen Sie Würfe verwenden, um Ausnahmen zu werfen, die möglicherweise von dieser Methode geworfen werden, andernfalls wird die Kompilierung einen Fehler meldet.