Erste Schritte Wie definiere ich eine Java Throw Exception?

big_goliath

Mitglied
Folgende Aufgabe ist für eine Prüfung für mich wichtig, ich hätte gerne mal ein paar Lösungsmöglichkeiten, wie Ihr diese Aufgabe mit den Grundlegenden Befehlen lösen würdet.



Throw Exception

a) Erstellen Sie eine Klasse Overflow die als Exception geworfen werden kann.

b) Ergänzen Sie die Methode count() so, dass bei einem Überlauf die Exception Overflow "geworfen" wird.

c)Ergänzen SIe das Hauptprogramm so, dass die Ausnahme gefangen wird und die Fehlermeldung "Zählerüberlauf" ausgegeben wird.
 

big_goliath

Mitglied
Ich habe mir ja selber schon gedanken gemacht, aber wollte mal eine weitere Lösung bzw. korrektur haben.

Hier die OverflowException:

public class OverflowException extends Exception {
public OverflowException() { super(); }
public OverflowException(String message) { super(message); }
public OverflowException(String message, Throwable cause) { super(message, cause); }
public OverflowException(Throwable cause) { super(cause); }}



Hier eine Testklasse mit der Methdode "count()":

package net.gutefrage.overflow;
public class Hauptprogramm {
public static void main(String[] args) {
new Hauptprogramm().top();
}
void top() {
try {
count();
System.out.println("Counter noch ok!");
count();
System.out.println("Counter zu groß!");
} catch (OverflowException oe) {
System.out.println("Overflow erreicht: " + oe);
}
} // end top(): Hauptprogramm
int counter = 0;
void count() throws OverflowException{
counter = counter + 1;
if(counter > 1) {
throw new OverflowException("Überlauf > 1 !!!");
}
}
} // end of class Hauptprogramm
 

JStein52

Top Contributor
Was sagt der Compiler ? Bei mir geht es !!!

run:
Counter noch ok!
Overflow erreicht: mytest.OverflowException: Überlauf > 1 !!!
BUILD SUCCESSFUL (total time: 7 seconds)
 

big_goliath

Mitglied
Ich habe generell Probleme zu verstehen, dass ich die Klassen bei Netbeans in die richtigen Reiter anordne.
Bin es eher gewohnt von C, dass ich nur ein Programm habe welches von oben nach unten durchläuft.

Meinst du, dass diese Lösung auch der gestellten Aufgabe entspricht? Ich habe dieses Programm mit einem Kumpel geschrieben, welcher wesentlich fitter ist als ich, und ich muss sagen, dass Programm scheint mir recht umfangreich für unsere Ansprüche (Maschinenbau Studium 2 Sem., wir werden danach nichts mehr mit Java am Hut haben).
 

JStein52

Top Contributor
Ja, deine Lösung entspricht genau der Anforderung. Hast du vielleicht die Overflow-Klasse in einem anderen package als deine Hauptklasse ? Dann kennt er in der Hauptklasse deine OverflowException nicht ! Du brauchst dann bei deiner Hauptklasse eine import-Anweisung. Stell dir einfach vor du hast ein C-Programm mit diversen include-Anweisungen. Und diese include-Dateien stehen in verschiedenen Directories ( entspr. packages) dann musst du dem C-Compiler auch irgendwie sagen in welchen Directories die Include-Dateien liegen. Hier nennt es sich halt package.

Und ich denke das Java-Element Exception sollte man schon kennenlernen, auch wenn du mit Java später vielleicht ( :) ) nichts mehr zu tun hast.
 

Neue Themen


Oben