Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Zeile 4: Zeile 4:
Weiters unterscheiden wir zwei Arten von '''Exceptions'''.
Weiters unterscheiden wir zwei Arten von '''Exceptions'''.
=== Checked Exceptions ===
=== Checked Exceptions ===
Dazu gehört jede '''Exception''' die von {{JSL|java.lang.Throwable}} erbt, aber keine {{JSL|java.lang.RuntimeException}} und kein {{JSL|java.lang.Error}} ist. Wenn '''Checked Exceptions''' geworfen werden, so muss dies in der Methode mittels {{JSL|throws ExceptionName}} deklariert werden und diese müssen auch immer behandelt werden.
Dazu gehört jede '''Exception''' die von {{JSL|java.lang.Throwable}} erbt, aber keine {{JSL|java.lang.RuntimeException}} und kein {{JSL|java.lang.Error}} ist. Wenn '''Checked Exceptions''' geworfen werden, so muss dies in der Methode mittels {{JSL|throws ExceptionName}} deklariert werden. Zusätzlich muss diese Art von Exeptions auch immer von der Aufrufenden {{Link|Methoden|Methode}} behandelt, oder weitergeworfen werden.
 
=== Unchecked Exceptions ===
=== Unchecked Exceptions ===
Im folgenden Beispiel wird eine {{Link|Methoden|Methode}} erstellt, welche einen Dateinamen nimmt und die Länge der Datei zurückgibt. Existiert die Datei nicht, so wird eine {{JSL|java.lang.FileNotFoundException}} geworfen:
Im folgenden Beispiel wird eine {{Link|Methoden|Methode}} erstellt, welche einen Dateinamen nimmt und die Länge der Datei zurückgibt. Existiert die Datei nicht, so wird eine {{JSL|java.lang.FileNotFoundException}} geworfen:

Version vom 27. Januar 2021, 16:04 Uhr

Exceptions

Exceptions oder Ausnahmen können von Methoden geworfen werden. Eine Exception tritt auf, wenn eine Methode außerhalb ihrer gewünschten Funktionalität operiert. Jede Exception ist ein java.lang.Throwable, d.h. entweder ist es die direkte Superklasse, oder irgendwo weiter oben.

Komischer Fakt: java.lang.Throwable erbt nicht von java.lang.Object

Weiters unterscheiden wir zwei Arten von Exceptions.

Checked Exceptions

Dazu gehört jede Exception die von java.lang.Throwable erbt, aber keine java.lang.RuntimeException und kein java.lang.Error ist. Wenn Checked Exceptions geworfen werden, so muss dies in der Methode mittels throws ExceptionName deklariert werden. Zusätzlich muss diese Art von Exeptions auch immer von der Aufrufenden Methode behandelt, oder weitergeworfen werden.

Unchecked Exceptions

Im folgenden Beispiel wird eine Methode erstellt, welche einen Dateinamen nimmt und die Länge der Datei zurückgibt. Existiert die Datei nicht, so wird eine java.lang.FileNotFoundException geworfen:

public static long getFileLength(String fileName) throws FileNotFoundException {
  File f = new File(fileName);
  if(!f.exists()) {
    throw new FileNotFoundException();
  }
  return f.length();
}