Compiler kann das exceptionElement nicht finden

Status
Nicht offen für weitere Antworten.

aVoX

Mitglied
Hi!

Ich bin neu hier und gehe in eine EDVO-HTL wo wir im 1. Jahr Java lernen. Ich bin aber etwas voreilig und wollte schon mit Exceptions arbeiten. Die vorgefertigte Exception funktioniert wunderbar (Scanner-Exception für Integer => Exc. wird geworfen, wenn die Eingabe über 2 Mrd. ist, unter -2 Mrd. ist, ein String ist, oder eine Dezimalzahl ist). Zusätzlich wollte ich auch noch eine Benutzer-Exception basteln, die geworfen wird, wenn die Eingabe (per Scanner) kleiner eins ist. Die Benutzer-Exception hab ich nachgebildet nach einem Beispiel aus dem Buch Sprechen Sie Java?. Aber der Compiler kann bei der unten markierten Stelle das exceptionElement f nicht finden.
Code:
import java.util.Scanner;
import java.io.*;
public class Eratosthenes {
	public static void main (String[] args) {
			
			class UnderflowException extends Exception {	//Deklariert neue Exc.
				int underflowElement;						//für Underflow (kleiner 1)
				UnderflowException (int f) {
					underflowElement = f;
				}
			}
			
			int n, max;
			boolean[] istPrim;
			Scanner eingabe = new Scanner(System.in);
			
		try {
			System.out.print("Wie weit sollen die Primzahlen berechnet werden? ");
			n = eingabe.nextInt();
			
			if (n < 1) {
				throw new UnderflowException(f);     //MARKIERUNG
			}
			
			max = (int)(Math.sqrt(n));		//Berechnet die Quadratwurzel aus n und konvertiert sie in einen Integer
		} catch (Exception e) {
			System.out.println("\nFehler bei Eingabe!\nDie Eingabe darf keine Dezimalzahl sein und kein String!");
		} catch (UnderflowException f) {
			System.out.println("\nFehler bei Eingabe!\nDie Eingabe muss zumindest 1 sein!");
		}
	}
}
Selbst wenn ich public static void main (String[] args) throws Exception { schreib, gehts nicht.

Danke im vorraus, aVoX. :D
 

Schandro

Top Contributor
f ist nicht definiert. Wenn du z.b. eine Zeile vor der Markierung int f = 42; schreiben würdest, würde es natürlich gehen...
Das der Paramter, dem du den Konstruktor der UnderflowException übergibts, innerhalb dessen f heißt, hat nix damit zu tun WIE du diesen Parameter übergibst...
 

bbnvacx

Mitglied
Es gibt kein f, es darf nicht

Code:
throw new UnderflowException(f);

heißen, sondern es muss so heißen:

Code:
throw new UnderflowException(n);


:wink: Bbnv
 

aVoX

Mitglied
Schandro hat gesagt.:
f ist nicht definiert. Wenn du z.b. eine Zeile vor der Markierung int f = 42; schreiben würdest, würde es natürlich gehen...
Und auf welchen Wert muss ich f setzen? Muss der Wert kleiner 1 sein (so wie vorgesehen), oder ist das egal?

Edit
@Ober mir:
Warum muss ich UnderflowException mit n verknüpfen, die vordefinierte Exception aber mit dem undeklarierten e?

Edit 2
Wenn ich dann
Code:
//Nur ein SNIPPET
		try {
			System.out.print("Wie weit sollen die Primzahlen berechnet werden? ");
			n = eingabe.nextInt();
			
			if (n < 1) {
				throw new UnderflowException(n);
			}
			
			max = (int)(Math.sqrt(n));		//Berechnet die Quadratwurzel aus n und konvertiert sie in einen Integer
		} catch (Exception e) {
			System.out.println("\nFehler bei Eingabe!\nDie Eingabe darf keine Dezimalzahl sein und kein String!");
		} catch (UnderflowException f) {
			System.out.println("\nFehler bei Eingabe!\nDie Eingabe muss zumindest 1 sein!");
		}
	}
}
Schreibe, meldet mir der Compiler
JDK-Compiler hat gesagt.:
n is already defined in main(java.lang.String[])
 

bbnvacx

Mitglied
Die UnderflowException wird niemals auftreten, es darf nicht

Code:
} catch (Exception e) {
     System.out.println("\nFehler bei Eingabe!\nDie Eingabe darf keine Dezimalzahl sein und kein String!");
} catch (UnderflowException f) {
     System.out.println("\nFehler bei Eingabe!\nDie Eingabe muss zumindest 1 sein!");
}
heißen (wenn die Ausgabe "Die Eingabe muss zumindest 1 sein" irgendwann mal auftreten soll), sondern so:

Code:
} catch (UnderflowException f) {
       System.out.println("\nFehler bei Eingabe!\nDie Eingabe muss zumindest 1 sein!"); 
} catch (Exception e) {
       System.out.println("\nFehler bei Eingabe!\nDie Eingabe darf keine Dezimalzahl sein und kein String!");
}
 

Schandro

Top Contributor
Und auf welchen Wert muss ich f setzen? Muss der Wert kleiner 1 sein (so wie vorgesehen), oder ist das egal?
Ich fahr heute in den Baumarkt. Soll ich mir ne Schaufel oder en Rasenmäher kaufen?

Wenn du jetzt verwirrt bist: Ich will damit ausdrücken, das du das entscheiden musst. Du hast die Klasse und auch den Kosntruktor von UnderflowException selbst gemacht, also musst du auch wissen wofür das gut ist und für was du diese Klasse später benutzen willst.
Wir wissen nämlich nicht wie dein Programm später genau arbeiten soll...

... und du weißt dafür nicht das ich heute ein Loch buddeln will
 

Schandro

Top Contributor
Wenn du zuerst schreibst "catch(Exception e)", dann fängt dieses ALLE Ausnhamen auf, da ALLE Ausnahme von "Exception" abgeleitet sind. (auch deine UnderflowException). Deswegen ist es sinnlos, nach "catch(Exception e)" noch ein weiteres catch-Statement zu haben, weil dieses niemals aufgerufen wird weil ja schon vorher alles abgefangen wurde...
 

bbnvacx

Mitglied
aVoX hat gesagt.:
@bbnvacx (komischer Name)
Warum gehört das anders rum?

Weil java.lang.Exception der Obertyp für alle Exceptions ist. Wenn catch(Exception e) am Anfang steht, dann fängt es auch die UnderflowException, und dann wird immer (auch wenn eine UnderflowException geworfen wurde)
"\nFehler bei Eingabe!\nDie Eingabe darf keine Dezimalzahl sein und kein String!" ausgegeben.
 

aVoX

Mitglied
Schandro hat gesagt.:
Wenn du zuerst schreibst "catch(Exception e)", dann fängt dieses ALLE Ausnhamen auf, da ALLE Ausnahme von "Exception" abgeleitet sind. [...]
Das heißt, ich müsste korrekterweise statt
Code:
catch(Exception e)
Code:
catch(IOException e)
schreiben? Aber das funzt dann auch nicht
 

bbnvacx

Mitglied
Schandro hat gesagt.:
weil ja schon vorher alles abgefangen wurde...

Das stimmt nicht so genau, es gibt noch die Errorklassen, die kann man ebenfalls mit throw werfen, die sind aber nicht von Exception abgeleitet.
Mit catch(Throwable t) lässt sich alles (auch die Errorklassen) abfangen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
B Nicht reproduzierbarer Fehler bei Kompilierung - Shortcut "Bereinigung" Compiler ? Java Basics - Anfänger-Themen 4
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
D Warum Compiler das nicht Java Basics - Anfänger-Themen 6
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
C Classpath Compiler lässt sich nur bedingt von Kommandozeile aus starten Java Basics - Anfänger-Themen 17
V Komplizierte Compiler Fehlermeldungen Java Basics - Anfänger-Themen 7
B Compiler -> unendliche Schleife (StringBuffer?) Warum? Java Basics - Anfänger-Themen 2
B Java Compiler Fehler Java Basics - Anfänger-Themen 7
R Compiler-Fehler Java Compiler Unterschiede Java Basics - Anfänger-Themen 10
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
L Compiler funktioniert nicht Java Basics - Anfänger-Themen 2
M Erste Schritte Erstes Programm mit Compiler öffnen Java Basics - Anfänger-Themen 4
K Enigma compiler Fehler Java Basics - Anfänger-Themen 4
K Compiler-Fehler Enigma compiler Fehler Java Basics - Anfänger-Themen 5
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
W Compiler-Fehler Compiler Fehler Java Basics - Anfänger-Themen 9
K Arraylist - Compiler Fehler Java Basics - Anfänger-Themen 3
S Logging Code komplett von Compiler entfernen lassen..? Java Basics - Anfänger-Themen 5
J Compiler-Fehler Cmd startet compiler Java Basics - Anfänger-Themen 1
Z Java Compiler will nicht mehr Java Basics - Anfänger-Themen 3
J Compiler Fehler Java Basics - Anfänger-Themen 5
K Compiler-Fehler Probleme mit dem Compiler Java Basics - Anfänger-Themen 10
R Java HotSpot Compiler Java Basics - Anfänger-Themen 6
J Java Basics Frage Compiler etc Java Basics - Anfänger-Themen 12
J Compiler-Fehler Verständnis Problem bei Compiler-Warning Java Basics - Anfänger-Themen 7
F Compiler Probleme Java Basics - Anfänger-Themen 7
D [jni] compiler error Java Basics - Anfänger-Themen 2
J Compiler findet method nicht Java Basics - Anfänger-Themen 12
E Compiler Java Basics - Anfänger-Themen 9
I Suche Compiler in Java SDK Java Basics - Anfänger-Themen 5
D Classpath compiler zur Laufzeit aufrufen & lib-classpath Java Basics - Anfänger-Themen 6
S Compiler-Fehler see the compiler error output Java Basics - Anfänger-Themen 6
E Verwirrender Compiler Fehler!? Java Basics - Anfänger-Themen 3
Dit_ Compiler-Fehler Stringvariable ändern | Compiler warnung Java Basics - Anfänger-Themen 25
J Mac OS X - javac - Compiler Probleme Java Basics - Anfänger-Themen 2
M Compiler-Fehler instanceof compiler-error Java Basics - Anfänger-Themen 2
M JDK installieren Compiler Version Java Basics - Anfänger-Themen 4
pindakaas Compiler geht nicht (Dekorator Muster) Java Basics - Anfänger-Themen 18
S compiler auf 6.0 stellen Java Basics - Anfänger-Themen 6
L laut Compiler fehlt der Methodenkörper Java Basics - Anfänger-Themen 2
N Compiler findet array in gleicher methode nicht Java Basics - Anfänger-Themen 4
R Automatischer Compiler? Java Basics - Anfänger-Themen 4
H TreeMap Rückgabe - Compiler-Warnings Java Basics - Anfänger-Themen 9
C Hat jemand Ahnung zum GCJ(Gnu Compiler for Java) Java Basics - Anfänger-Themen 7
Luk10 Frage zu Compiler-Einstellung Java Basics - Anfänger-Themen 12
B Compiler funzt nicht. Java Basics - Anfänger-Themen 12
A SocketServer und Ahead-Of-Time-Compiler Java Basics - Anfänger-Themen 18
P JAVA Compiler (Javac) Java Basics - Anfänger-Themen 4
M Compiler-Fehler Java Basics - Anfänger-Themen 11
Mike90 Java Compiler funzt nicht Java Basics - Anfänger-Themen 11
J Java Compiler will nicht in der Kommandozeile Java Basics - Anfänger-Themen 5
M Unterschied zwischen . Compiler und JIT-Compiler,Hotspot-VM Java Basics - Anfänger-Themen 2
M einfache frage zum Jdk-Compiler Java Basics - Anfänger-Themen 3
A compiler gibt nichts aus Java Basics - Anfänger-Themen 12
D JDK Compiler Java Basics - Anfänger-Themen 4
B Fragen zu threads, swing, und dem bytecode compiler, etc. Java Basics - Anfänger-Themen 4
K Warum akzeptiert der Compiler mein Objekt nicht ? Java Basics - Anfänger-Themen 3
F Compiler für mac os x 10.4 Java Basics - Anfänger-Themen 5
S compiler warning Java Basics - Anfänger-Themen 2
A Java error message Was will der Compiler von mir? Java Basics - Anfänger-Themen 6
K Compiler Problem Java Basics - Anfänger-Themen 3
J compiler funktioniert nicht Java Basics - Anfänger-Themen 8
I Compiler ignoriert setSize, setPreferredSize, etc. Java Basics - Anfänger-Themen 14
G jaxb compiler Java Basics - Anfänger-Themen 2
E Compiler-Befehl zum "nicht beachten" von Code Java Basics - Anfänger-Themen 10
B Anfänger mit Compiler-problemen Java Basics - Anfänger-Themen 20
S was passt dem compiler nicht? Java Basics - Anfänger-Themen 2
I Probleme mit Pfad zum Compiler Java Basics - Anfänger-Themen 8
D [DONE] JDK Installation: Compiler macht Probleme. Java Basics - Anfänger-Themen 3
M Compiler findet main nicht Java Basics - Anfänger-Themen 4
O Compiler-Fehler im Bezug auf Klasse Java Basics - Anfänger-Themen 5
G compiler Java Basics - Anfänger-Themen 16
C Compiler-Fehler Java Basics - Anfänger-Themen 6
S Java Compiler? oder doch der Code? Java Basics - Anfänger-Themen 6
padde479 Compiler-Frage: Was bedeutet deprecated? Java Basics - Anfänger-Themen 4
C Nach Installation kein Java-Compiler Java Basics - Anfänger-Themen 7
R Java verstanden, Compiler nicht Java Basics - Anfänger-Themen 6
M Frage zu Java Compiler Java Basics - Anfänger-Themen 3
A Ant Problem: Unable to find a javac compiler; Java Basics - Anfänger-Themen 4
B Aus Datei Lesen -> Compiler fehler Java Basics - Anfänger-Themen 6
B Compiler Fehler "{" expected, kann doch nich sein? Java Basics - Anfänger-Themen 9
M kostenloser Java-Compiler? Java Basics - Anfänger-Themen 6
D Was für einen compiler empfehlt ihr? Java Basics - Anfänger-Themen 12
F Compiler-Fehlermeldung LINUX Java Basics - Anfänger-Themen 9
C Compiler-Fehler - bitte um Hilfe Java Basics - Anfänger-Themen 20
H Java-Compiler Java Basics - Anfänger-Themen 5
T System.out.println - Compiler-Fehler Java Basics - Anfänger-Themen 22
C Compiler läuft nicht Java Basics - Anfänger-Themen 6
G Compiler hängt schon wieder Java Basics - Anfänger-Themen 14
E jit-compiler Java Basics - Anfänger-Themen 5
G Windows optimierter Compiler? Java Basics - Anfänger-Themen 5
J suche guten Java-Compiler! Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben