Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| programmierung:exceptions [2024/08/30 15:04] – swe | programmierung:exceptions [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Exceptions | + | ====== |
| Exceptions sind besondere Ereignisse oder Fehler, die während der Ausführung eines Programms auftreten und den normalen Ablauf des Programms unterbrechen. | Exceptions sind besondere Ereignisse oder Fehler, die während der Ausführung eines Programms auftreten und den normalen Ablauf des Programms unterbrechen. | ||
| + | ===== try und catch ===== | ||
| Dabei gibt es eine '' | Dabei gibt es eine '' | ||
| Line 8: | Line 10: | ||
| Sollte dieser Versuch eine Ausnahme '' | Sollte dieser Versuch eine Ausnahme '' | ||
| + | ==== Beispiel ArrayIndexOutOfBoundsException | ||
| - | <code java [enable_line_numbers=" | + | |
| + | Im Beispiel wird in Zeile 5 auf Element Nr.6 des Array '' | ||
| + | |||
| + | Da '' | ||
| + | |||
| + | Hier kommt jedoch der '' | ||
| + | Dieser Block nimmt die Exception an und beruhigt die Wogen. Die Exception wird abgefangen und das Programm stürzt nicht mehr ab. Vielmehr bleibt Zeit, eine Ausgabe zu senden oder andere Anweisungen auszuführen. | ||
| + | |||
| + | (Natürlich ist im Beispiel nach durchlaufen des Codes das Programm beendet. Aber eben normal beendet. Das Programm ist nicht abgestürzt) | ||
| + | <code java [enable_line_numbers=" | ||
| public class ExceptionExample { | public class ExceptionExample { | ||
| Line 25: | Line 37: | ||
| </ | </ | ||
| - | In diesem | + | ==== Beispiel |
| + | Schau Dir nun das folgende Beispiel an. Hier wird der User aufgefordert, | ||
| - | - **try**: Der Codeblock, der möglicherweise | + | Was würde aber passieren, wenn der User statt einer Zahl seinen Namen eingibt? Richtig - das Programm würde mit Pauken und Trompeten crashen! Es wird durch unsere Wahl '' |
| - | - **catch**: Der Codeblock, der die Ausnahme behandelt. | + | |
| + | Unser '' | ||
| + | Beachte, dass der Code unmittelbar mit werfen der Exception in den '' | ||
| + | |||
| + | Da der ganze '' | ||
| + | |||
| + | Erst wenn die Eingabe durch den '' | ||
| + | |||
| + | <code java [enable_line_numbers=" | ||
| + | import java.util.Scanner; | ||
| + | |||
| + | public class Main { | ||
| + | |||
| + | public static void main(String[] args) { | ||
| + | Scanner sc = new Scanner (System.in); | ||
| + | int zahl1 = 0; | ||
| + | |||
| + | while (true) { | ||
| + | try { | ||
| + | System.out.print(" | ||
| + | zahl1 = sc.nextInt(); | ||
| + | break; | ||
| + | } catch (Exception e) { | ||
| + | System.out.println(" | ||
| + | sc.next(); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||