Erklärung von Ausnahmebehandlung in Methoden

matze86

Bekanntes Mitglied
Hallo, ich frage mich gerade, was eine Ausnahmebehandlung in Methoden macht.

Im Folgenden Code kommt die selbe Meldung, wenn ich "throws ArithmeticException" weg lasse.

Java:
        int a = 6;
        int b = 0;
        
        test(a,b);
    }

    private static void test(int a, int b) throws ArithmeticException{
        int c;
        c = a/b;
        System.out.println(c);}
 

LimDul

Top Contributor
Also, die Definition "throws XY" ist erstmal keine Ausnahmebehandlung, sondern gibt nur an, welche Exceptions eine Methode werfen kann.

Ausnahmebehandlung ist der Block try ... catch, der hier nicht vorhanden ist.

Bei Exceptions gibt es (grob) zwei Klassen:

Unchecked Exceptions
Das sind Exceptions die direkt oder indirekt von RuntimeException erben.
Die haben die Eigenschaft, dass sie
* Nicht als throws deklariert werden müssen (Können aber)
* Ein Aufrufer, der eine Methode aufruft, die eine solche Exception werfen kann, kann das komplett ignorieren, sie wird dann automatisch weitergeworfen.

Checked Exceptions
Das sind Exceptions die direkt oder indirekt von Exception erben und keine UncheckedExceptions sind.
Die haben die Eigenschaft
* Wenn sie potentiell geworfen werden können, müssen sie als throws im Methodenkopf deklariert werden
* Wer eine Methode aufruft, die eine solche Exception werfen kann, muss sie entweder fangen (catch) oder explizit weiterwerfen (durch Angabe von throws im Methodenkopf)


Die ArithmeticException ist - wie man im Java-Doc sehen kann - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArithmeticException.html eine UncheckedExceptions. Das heißt, die Angabe in throws ist nicht notwendig und hat keine Auswirkungen,. Die dient rein dazu dem Programmier bewusst zu machen, das sowas passieren kann, wenn er da Unfug rein steckt in die Methode
 

LimDul

Top Contributor
Nö, eine unchecked Exception muss nie gefangen werden. Wenn sie nicht gefangen wird, wird das Programm halt beendet.
 

LimDul

Top Contributor
Bei einer unchecked Exceptions - ja.
Bei einer checked Exception - nein, dann muss man was tun (entweder selber als throws deklarieren oder fangen)
 

matze86

Bekanntes Mitglied
Ich habe mir schnell mal folgenden Code gebastelt:

Java:
        int a = 6;
        int b = 0;
        try {
            
        test(a,b);}
        catch(ArithmeticException i) {
            System.out.println(i.getMessage());}
    }

    private static void test(int a, int b) {// throws ArithmeticException{
        int c;
        c = a/b;
        System.out.println(c);}
Hier macht es keinen Unterschied, ob "throws ArithmeticException" auskommentiert ist oder nicht.
 

LimDul

Top Contributor
Ja, weil es sich um eine unchecked Exception handelt. Lies doch noch mal in Ruhe alles, was ich geschrieben habe - die Unterscheidung zwischen Unchecked und Checked Exception ist essentiell.
 

matze86

Bekanntes Mitglied
OK, aber ein "IOException" MUSS man zwangsläufig abfangen, entweder in der Methode, oder beim Aufruf der Methode, dann muss sie aber mit "throws IOException" deklariert werden. ist das jetzt richtig?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 12
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
D Erklärung Java Basics - Anfänger-Themen 3
A Erklärung Programm zur Kreisberechnung Java Basics - Anfänger-Themen 43
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
D Erklärung eines Satzes Java Basics - Anfänger-Themen 0
M Erklärung: Int IndexOf (String s) Java Basics - Anfänger-Themen 3
C Methoden erklärung Java Basics - Anfänger-Themen 8
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
D Erklärung static boolean Java Basics - Anfänger-Themen 6
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
O Über Map laufen Erklärung Java Basics - Anfänger-Themen 4
H Primzahltest : Erklärung zum Code Java Basics - Anfänger-Themen 2
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
B Benötige Erklärung für Lösungsansatz Java Basics - Anfänger-Themen 0
M web.xml Abschnitt Erklärung Java Basics - Anfänger-Themen 2
Z Fibonacci rekursiv meine Erklärung stimmt so? Java Basics - Anfänger-Themen 2
A erklärung von code Java Basics - Anfänger-Themen 4
A DezimalZuBinär - Erklärung der Vorgehensweise des Programms Java Basics - Anfänger-Themen 4
Z Fibonacci Array Erklärung Java Basics - Anfänger-Themen 5
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
G Erklärung .next Java Basics - Anfänger-Themen 4
D Erklärung Kalenderwoche Java Basics - Anfänger-Themen 14
T Erklärung zur Methode, Modulator Java Basics - Anfänger-Themen 3
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
P Methoden Erklärung wie ich eine spezielle Methode richtig anwende Java Basics - Anfänger-Themen 9
S Threads Erklärung ReentrantLock Java Basics - Anfänger-Themen 6
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
R Interpretation/Erklärung main Java Basics - Anfänger-Themen 4
Helgon Polymorphie Generischer Methodenkopf - Erklärung Java Basics - Anfänger-Themen 3
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
A Java Erklärung? Java Basics - Anfänger-Themen 4
D Beans Erklärung Java Basics - Anfänger-Themen 11
Q Klausur aufgabe Erklärung Java Basics - Anfänger-Themen 12
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
K gute erklärung Java Basics - Anfänger-Themen 5
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Spin Taschenrechner - Erklärung Java Basics - Anfänger-Themen 9
S Code-Erklärung Java Basics - Anfänger-Themen 4
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
M enhanced for - erklärung Java Basics - Anfänger-Themen 3
K Erklärung der Syntax Java Basics - Anfänger-Themen 6
R Erklärung bitte Java Basics - Anfänger-Themen 3
G Erklärung for-Schleife bei Strings Java Basics - Anfänger-Themen 4
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
W Programm erklärung Java Basics - Anfänger-Themen 7
F Threads - Erklärung und Beispielprogramm Java Basics - Anfänger-Themen 4
D Erklärung für eine Abfrage. Java Basics - Anfänger-Themen 9
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
B [suche erklärung] - sicherheit beim login Java Basics - Anfänger-Themen 3
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
A Ausnahmebehandlung Java Basics - Anfänger-Themen 10
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
B Ausnahmebehandlung Java Basics - Anfänger-Themen 9
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
P Ausnahmebehandlung Java Basics - Anfänger-Themen 8
D Exceptions - Ausnahmebehandlung Java Basics - Anfänger-Themen 19
P Ausnahmebehandlung Exception HILFE!!! Java Basics - Anfänger-Themen 6
M Ausnahmebehandlung Java Basics - Anfänger-Themen 4
L Ausnahmebehandlung Java Basics - Anfänger-Themen 6
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Kotelettklopfer Methoden nicht aufrufbar Java Basics - Anfänger-Themen 34
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben