English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie kann man die Ausnahme im Thread main im Java beheben?

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.

Beispiel

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

Art der Ausnahme

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.

Thread-Main-Exception

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.

Beispiel

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]);
   }
}

Runtime-Exception

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at MyPackage.ExceptionExample.main(ExceptionExample.java:14)

Beispiel

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];
   }
}

Runtime-Exception

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)

Behandlung von Runtime-Exception

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.

Beispiel

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