Exception werfen

Paratonix

Mitglied
Hallo, ich arbeite derzeit an einer Anwendung welche einen String als Binärzahl übergeben bekommt und dann in ein int umwandeln soll. Falls der String keine Binärzahl ist soll eine Exception geworfen werden, welche selbst erzeugt wurde, durch das Ableiten von der RuntimeException Klasse.

Dazu habe ich erst einmal die Runtimeexception Klasse überschrieben:
Java:
public class NoBinaryNumberException extends Exception {
    
    public NoBinaryNumberException () {
        super();
    }
    
    public NoBinaryNumberException (String binzahl) {
        super(binzahl +"ist kein gültiger Wert! Bitte eine Binärzahl eingeben!");
    }
    
}
Diese Exception wollte ich dann in folgender Klasse werfen:
Java:
class ConvertBinary {
    String binzahl;
    static int zahl;
    
static int convert (String binzahl) {
    for (int i = 0; i <= binzahl.length(); i++) {
        if (binzahl.charAt(i) != 1 || binzahl.charAt(i) != 0) {
            throw new NoBinaryNumberException(binzahl);
        }
        else {
            zahl = Integer.parseInt(binzahl);
        }
    }
    return zahl;
}
}

Und erhalte folgende Fehlermeldung:
ConvertBinary.java:8: error: unreported exception NoBinaryNumberException; must be caught or declared to be thrown
throw new NoBinaryNumberException(binzahl);

Anscheindend wurde die Exception falsch eingebaut, kann mir jemand weiterhelfen wie ich diese richtig in den Code einbinde?
 
K

kneitzel

Gast
Also im Text schreibst Du, dass Du von RuntimeException ableiten willst. Aber im Code leitest Du von Exception ab.

RuntimeException ist unchecked (so wie Du es wohl auch willst) und Exception ist eine Checked Exception, d.h. wenn Du die nutzt, dann musst Du auch angeben, dass die Funktion diese Exception werfen kann.
 

Paratonix

Mitglied
Ok, vielen Dank erstmal ! Ich habe jetzt von RuntimeException abgeleitet und es hat funktioniert!
Aber noch einmal zum Verständnis, in welcher Form gibt man bei Exception dann an, dass die Funktion eine Exception werfen kann?
 
K

kneitzel

Gast
Ok, vielen Dank erstmal ! Ich habe jetzt von RuntimeException abgeleitet und es hat funktioniert!
Aber noch einmal zum Verständnis, in welcher Form gibt man bei Exception dann an, dass die Funktion eine Exception werfen kann?
Das würde mit "throws" gehen. Wenn die Exception eine Checked Exception bleiben sollte, dann würde die Funktion so aussehen:
Java:
static int convert (String binzahl) throws NoBinaryNumberException {

Was ist das für ein Blödsinn? Eins von beiden wird's immer nicht sein. Zudem gilt '0' != 0.
Anfänger?
Also das ist doch eigentlich offensichtlich. Daher verstehe ich Deine heftige Reaktion nicht. Statt dessen hätte man da doch freundlich drauf hinweisen können. Wobei ich bei sowas eher dazu neige, die Leute selbst so Fehler finden zu lassen. Sein Code compiliert ja jetzt, so dass er testen kann, ob es funktioniert oder nicht ...
 

Paratonix

Mitglied
Das würde mit "throws" gehen. Wenn die Exception eine Checked Exception bleiben sollte, dann würde die Funktion so aussehen:
Java:
static int convert (String binzahl) throws NoBinaryNumberException {


Also das ist doch eigentlich offensichtlich. Daher verstehe ich Deine heftige Reaktion nicht. Statt dessen hätte man da doch freundlich drauf hinweisen können. Wobei ich bei sowas eher dazu neige, die Leute selbst so Fehler finden zu lassen. Sein Code compiliert ja jetzt, so dass er testen kann, ob es funktioniert oder nicht ...

Ok danke, also meine Anwendung läuft erstmal soweit. Wenn ich eine Binärzahl eingebe kommt wie gewünscht keine Exception, aber habe noch ein kleines Problem, dass nicht die richtige Exception geworfen wird. Ansatt meiner definierten Exception zeigt er mir folgende:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1101a00"
Mein Code sieht jetzt folgendermaßen aus:

Java:
class ConvertBinary {
    String binzahl;
    static int zahl;
   
static int convert (String binzahl) {
    for (int i = 0; i <= binzahl.length()-1; i++) {
        if (binzahl.charAt(i) != '1' && binzahl.charAt(i) != '0') {
            throw new NoBinaryNumberException(binzahl);
        }
        else {
            zahl = Integer.parseInt(binzahl);
        }
    }
    return zahl;
}
}

Java:
public class NoBinaryNumberException extends RuntimeException {
   
    public NoBinaryNumberException () {
        super();
    }
   
    public NoBinaryNumberException (String binzahl) {
        super(binzahl +"ist kein gültiger Wert! Bitte eine Binärzahl eingeben!");
    }
   
}

Und eine Testklasse:
Java:
class ConvertBinaryTest {
    public static void main (String [] args) {
        ConvertBinary.convert("110100");
    }
}

Und ja ich bin noch Anfänger (ich lerne jetzt seit 2 Monaten Java)
 

mihe7

Top Contributor
So, damit die Kinder da oben Ruhe geben, muss ich auch was dazu schreiben.

Überleg mal, was in der Zeile
Java:
zahl = Integer.parseInt(binzahl);
passiert.
 
X

Xyz1

Gast
Bin auch immer müde in letzter Zeit... Das muss eine "verschleppte" oder besser: verkappte Frühjahrsmüdigkeit sein...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
M Exception werfen und bearbeiten Java Basics - Anfänger-Themen 1
3 Methoden Exception werfen oder nicht Java Basics - Anfänger-Themen 6
A Exception aus Thread werfen Java Basics - Anfänger-Themen 14
I Exception nicht werfen lassen Java Basics - Anfänger-Themen 3
D toString überschreiben + Exception werfen Java Basics - Anfänger-Themen 3
S Exception werfen Java Basics - Anfänger-Themen 2
G Comparator- methode compare exception werfen Java Basics - Anfänger-Themen 4
G Exception werfen Java Basics - Anfänger-Themen 4
W Exception werfen nur welche? Java Basics - Anfänger-Themen 17
F eigene Exception aus try-catch werfen Java Basics - Anfänger-Themen 10
D Exception werfen Java Basics - Anfänger-Themen 10
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben