Wenn Sie in Java eine Ausnahme auslösen möchten, müssen Sie zwei Java-Schlüsselwörter verwenden, die beide für Mechanismen zur Ausnahmebehandlung verwendet werden.
Eine Methode behandelt diese Ausnahme nicht, sondern leitet sie an die aufrufende Hierarchie weiter. Wer auch immer diese Methode aufruft, wird diese Ausnahme behandeln. Dies ist es, was eine Ausnahme auslöst.
throw: Wirft die generierte Ausnahme aus (der Schwerpunkt liegt auf der Aktion). Was geworfen wird, kann entweder eine Ausnahmereferenz oder ein Ausnahmeobjekt sein. (Speicherort: innerhalb des Methodenkörpers)
throws: Wenn eine Methode möglicherweise eine Ausnahme auslöst, diese jedoch nicht verarbeiten kann, können Sie die throws-Klausel in der Methode verwenden Deklaration, um zu erklären, dass eine Ausnahme ausgelöst wird. Die damit geänderte Methode zeigt dem Aufrufer an, dass die Methode möglicherweise eine Ausnahme auslöst (es kann ein Typ oder mehrere Typen sein, die durch Kommas getrennt sind) (Position: nach dem Methodennamen oder der Methodennamenliste in der Methode geschrieben Vor dem Körper. )
Hinweis: Wenn Sie eine Methode aufrufen, die möglicherweise eine Ausnahme auslöst, müssen Sie einen Try-Catch-Codeblock hinzufügen, um zu versuchen, die Ausnahme abzufangen, oder eine Throws-Anweisung hinzufügen, um die Ausnahme auszulösen Hier muss eine Ebene von Anrufern beachtet werden: Die neue Ausnahme enthält alle Informationen der ursprünglichen Ausnahme. Auf dieser Grundlage können wir den Ort ermitteln, an dem die ursprüngliche Ausnahme aufgetreten ist
Einfache Verwendung:// 定义一个方法,抛出 数组越界和算术异常(多个异常 用 "," 隔开)
public void Test1(int x) throws ArrayIndexOutOfBoundsException,ArithmeticException{
System.out.println(x);
if(x == 0){
System.out.println("没有异常");
return;
}
//数据越界异常
else if (x == 1){
int[] a = new int[3];
a[3] = 5;
}
//算术异常
else if (x == 2){
int i = 0;
int j = 5/0;
}
}
public static void main(String[] args) {
//创建对象
ExceptionInital object = new ExceptionInital();
// 调用会抛出异常的方法,用try-catch块
try{
object.Test1(0);
}catch(Exception e){
System.out.println(e);
}
// 数组越界异常
try{
object.Test1(1);
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界异常:"+e);
}
// 算术异常
try{
object.Test1(2);
}catch(ArithmeticException e){
System.out.println("算术异常:"+e);
}
//使用 throw 抛出异常(可以抛出异常对象,也可以抛出异常对象的引用)
try{
ArrayIndexOutOfBoundsException exception = new ArrayIndexOutOfBoundsException();
throw exception;//new ArrayIndexOutOfBoundsException();
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("thorw抛出异常:"+e);
}
}
Zusammenfassung des Unterschieds zwischen den Schlüsselwörtern throw und throws
1 Schreiben: throw wird im Methodenkörper verwendet, throws wird nach dem Funktionsnamen oder nach dem verwendet Parameterliste und vor dem Methodenkörper
2. Bedeutung: throw betont die Aktion, während throws eine Tendenz anzeigt, die tatsächlich eintreten kann, aber nicht unbedingt sein muss
3. Throws folgt die Ausnahmeklasse, Dabei handelt es sich um ein oder mehrere Vielfache, die durch Kommas getrennt werden. Auf throw folgt das Ausnahmeobjekt oder ein Verweis auf das Ausnahmeobjekt.
4. Auslöser: Der Benutzer löst eine Ausnahme aus. Wenn die Ausnahme in der aktuellen Methode ausgelöst wird, endet die Ausführung der aktuellen Methode Anweisung und dann Ende.). Es kann als Rückkehr verstanden werden.
Verwandte Lernempfehlungen:Java Basic Tutorial
Das obige ist der detaillierte Inhalt vonWie löst Java eine Ausnahme aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!