English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ausnahmen sind Probleme, die während der Ausführung des Programms auftreten (Laufzeitfehler). Wenn eine Ausnahme auftritt, wird das Programm plötzlich beendet und der Code nach der Ausnahmezeile wird nie ausgeführt.
import java.util.Scanner; public class ExceptionExample { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Geben Sie die erste Zahl ein:"); int a = sc.nextInt(); System.out.println("Geben Sie die zweite Zahl ein:"); int b = sc.nextInt(); int c = a/b; System.out.println("Das Ergebnis ist: "+c); } }
Ausgaberesultat
Geben Sie die erste Zahl ein: 100 Geben Sie die zweite Zahl ein: 0 Exception in thread "main" java.lang.ArithmeticException: / by zero at ExceptionExample
In Java gibt es zwei Arten von Ausnahmen
Geprüfte Ausnahme - Geprüfte Ausnahmen treten während der Kompilierung auf. Diese werden auch Kompilierungszeitausnahmen genannt. Diese Ausnahmen können nicht einfach bei der Kompilierung ignoriert werden. Der Programmierer sollte (verwalten) diese Ausnahmen beachten.
Ungenannte Ausnahme - Ungenannte Ausnahmen treten während der Ausführung auf. Diese werden auch Laufzeitausnahmen genannt. Dazu gehören Programmfehler, wie z.B. Logikfehler oder falsche API-Nutzung. Laufzeitausnahmen werden bei der Kompilierung ignoriert.
Runtime-Exception/Der Modus der Anzeige von nicht überprüften Exceptions"Thread main exception",das bedeutet, dass bei jedem Auftreten einer Runtime-Exception die Nachricht mit dieser Zeile beginnt.
Im folgenden Java-Programm haben wir ein Array der Größe5und versucht, den Index6Elementen zu erstellen, was ArrayIndexOutOfBoundsException verursacht.
public class ExceptionExample { public static void main(String[] args) { //mit Größe5des Integer-Arrays int inpuArray[] = new int[5]; //Array füllen inpuArray[0] = 41; inpuArray[1] = 98; inpuArray[2] = 43; inpuArray[3] = 26; inpuArray[4] = 79; //Zugriff auf Index größer als Größe des Arrays System.out.println(inpuArray[6]); } }
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6 at MyPackage.ExceptionExample.main(ExceptionExample.java:14)
Im folgenden Beispiel versuchen wir, ein Array mit negativem Wert als Größe zu erstellen, was NegativeArraySizeException verursacht.
public class Test { public static void main(String[] args) { int[] intArray = new int[-5]; } }
Bei der Ausführung generiert das Programm eine Runtime-Exception wie folgt.
Exception in thread "main" java.lang.NegativeArraySizeException at myPackage.Test.main(Test.java:6)
Sie können Runtime-Exception behandeln und einen Absturz vermeiden, aber es gibt in Java keine spezifische Fixierung für Runtime-Exception, abhängig von der Exception, erforderliche Änderung des Code-Typs.
Zum Beispiel, wenn Sie den ArrayIndexOutOfBoundsException im obigen Beispiel beheben müssen, müssen Sie löschen/Zeile ändern, um den Zugriff auf den Array-Index zu überschreiten, der seine Größe hat.
public class ExceptionExample { public static void main(String[] args) { //Erstellen eines Integer-Arrays mit Größe 5 int inpuArray[] = new int[5]; //Array füllen inpuArray[0] = 41; inpuArray[1] = 98; inpuArray[2] = 43; inpuArray[3] = 26; inpuArray[4] = 79; //Zugriff auf Index größer als Größe des Arrays System.out.println(inpuArray[3]); } }
Ausgaberesultat
26