Exceptions Anfänger - Finde Fehler nicht

Farbenfroh

Mitglied
Hi Leute!
Versuche mich gerade erstmals an Exceptions, deswegen bitte keine blöden Sprüche falls ich irgend einen total dämlichen Fehler eingebaut haben sollte, ich finde ihn auf jeden Fall nicht. Für Hinweise/hilfreiche Antworten bin ich sehr dankbar :) Der Code soll zwei integer addieren und bei der Eingabe von Buchstaben, Kommazahlen o.ä. eine Exception werfen.
Java:
package except1;
import java.util.Scanner;
public class index {

	public static void main(String[] args) {

	System.out.println("Addition zweier integer Zahlen!");
	System.out.println("Bitte erste Zahl eingeben");

		try{
			get(); //Einlesen der Zahlen durch die Methode "get"
			
			}
		catch(fehlor e)
			{
			System.out.println(e.getMessage()); //Text aus Klasse "fehlor" wird ausgegeben
			}
}
	
public static void get () throws fehlor
{
	int x,y;		
			Scanner sc = new Scanner(System.in);
			x=sc.nextInt();
			if (x !=(int)x)throw new fehlor();//Wenn die Eingabe kein int ist, soll Fehler geworfen werden
			System.out.println("Bitte zweite Zahl eingeben");
			y=sc.nextInt();	
			if (y !=(int)y)throw new fehlor();//Wenn die Eingabe kein int ist, soll Fehler geworfen werden
			addi(x,y);
}
public static void addi (int x, int y)
{
	x=x+y;
	System.out.print("Das Ergebnis der Addition lautet: ");
	System.out.print(x);}
}

Und hier noch die Klasse fehlor, welche sich in einer externen Datei befindet:
Java:
public class fehlor extends Exception {

	fehlor(){
super("Oops! Das war aber kein Integer!");
	}
	}

Mal abgesehen davon bin ich auch gar nicht sicher ob ich richtig verstanden habe, was Zeile 16 tut - hab sie einfach aus einem anderen Beispiel übernommen. Soweit ich das verstanden habe, wird die Exception (eingabe!=int) einfach "e" genannt und mit getMessage der Text aus der Unterklasse ausgegeben (also super("Dieser Text wird ausgegeben"))
 

njans

Top Contributor
Java:
(x !=(int)x)
Java:
(y !=(int)y)

x und y sind ints, da wird niemals was anderes als false rauskommen.
 

Farbenfroh

Mitglied
??
Habe zuvor etwas rumgegoogelt und habe dann gelesen, dass
Java:
x !=(int)x
überprüft, "ob x ein int ist oder nicht"

Was ist daran falsch bzw. wie kann ich sonst abfragen ob die Eingabe nicht ein int ist?
 

turtle

Top Contributor
Verstehe ich nicht...

Wenn ich in die javadoc schaue, steht da
Code:
public int nextInt()
Scans the next token of the input as an int.
An invocation of this method of the form nextInt() behaves in exactly the same way as the invocation nextInt(radix), where radix is the default radix of this scanner.

Returns:
the int scanned from the input
Throws:
InputMismatchException - if the next token does not match the Integer regular expression, or is out of range
NoSuchElementException - if input is exhausted
IllegalStateException - if this scanner is closed
Also wird da eine Exception geworfen, wenn beispielsweise Kommazahlen oder Buchstaben kommen, nämlich InputMismatchException.
 

njans

Top Contributor
ints sind Ganzzahlen. Du nimmst da eine Zahl, die bereits eine Ganzzahl ist, castest sie zu einer Ganzzahl und fragst nun, ob sie sich verändert hat. Direkt darüber ließt du dein x und y ein und ließt genau nur Ganzzahlen ein (kann also nur eine Ganzzahl sein) und dann weißt du es einer Variable vom typ int zu (wird dann zu einer Ganzzahl).
 

Farbenfroh

Mitglied
Ok!
Ich wollte das Beispiel nur aus Übungszwecken machen um mal eine eigene Exception auszuprobieren. Mir war schon klar, dass automatisch eine Exception geworfen wird, sobald man einen nicht-int Wert eingibt aber ich dachte es wäre vll. möglich diese Exception mit meiner eigenen auszutauschen.
Aber scheinbar geht das nicht, da die Eingabe ein int SEIN MUSS wenn die Schleife überhaupt bis zu meiner eigenen Exception-Abfrage gelangen würde. Richtig?
 

turtle

Top Contributor
Aber scheinbar geht das nicht, da die Eingabe ein int SEIN MUSS wenn die Schleife überhaupt bis zu meiner eigenen Exception-Abfrage gelangen würde. Richtig?
Ja.

Wenn du dir InputMismatchException genauer ansiehst, bemerkst du, dass es letztendlich eine RuntimeException ist. Diese musst du nicht behandelt, KANNST es aber.

Also kannst du eine catch-Block bauen, der die Exception behandelt und darin dann in deine eigene Exception umwandeln und die werfen.
Ist dann aber bei dir eine sogenannte Checked-Exception und dann MUSS man sich um die Behandlung kümmern.

Das ist ein sehr kontroverses Thema in Java, ob Checked-Exception überhaupt Sinn machen oder nicht. Jedenfalls gibt es eine Meinung das die allermeisten Exceptions RuntimeException sein sollten und daher ist dein Ansatz genau umgekehrt und somit kontraproduktiv.;)
 

Farbenfroh

Mitglied
Alles klar, dann werd ich mir mal ein paar andere Aufgabenstellungen zum Rumprobieren aussuchen - will ja erstmal den Syntax richtig rein kriegen, war halt ne doofe Idee eine Exception zu einer bereits bestehenden Exception zu schreiben.
Vielen Dank für die ausführlichen Antworten!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
I Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
J Exceptions Java Basics - Anfänger-Themen 69
C Exceptions Java Basics - Anfänger-Themen 8
C Exceptions Java Basics - Anfänger-Themen 6
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
F Exceptions Java Basics - Anfänger-Themen 6
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
N Compiler-Fehler Drei Exceptions in GUIHack für Dreiecke auf MoveButtons Java Basics - Anfänger-Themen 36
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
S Exceptions Java Basics - Anfänger-Themen 7
M Vererbung Problem Vererbung/Exceptions Java Basics - Anfänger-Themen 9
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
J Eclipse Exceptions Java Basics - Anfänger-Themen 2
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
K Exceptions auslagern Java Basics - Anfänger-Themen 15
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
F Erste Schritte Übung zu Exceptions Java Basics - Anfänger-Themen 24
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Int Exceptions Java Basics - Anfänger-Themen 12
M Exceptions per throws oder try Java Basics - Anfänger-Themen 4
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
T Exceptions in einer Klasse Java Basics - Anfänger-Themen 3
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
H Methoden Überflüssige Exceptions Java Basics - Anfänger-Themen 20
C Exceptions Java Basics - Anfänger-Themen 14
1 While Schleife Exceptions Java Basics - Anfänger-Themen 6
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
D Frage zu Exceptions Java Basics - Anfänger-Themen 12
M Compiler-Fehler Exceptions lieber throwen oder direkt catchen? Java Basics - Anfänger-Themen 8
T Exceptions Java Basics - Anfänger-Themen 19
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
Dit_ Input/Output Alle Exceptions protokollieren Java Basics - Anfänger-Themen 9
T Exceptions Java Basics - Anfänger-Themen 12
J Standard Exceptions abfangen Java Basics - Anfänger-Themen 5
F Exceptions werfen oder catchen?? Java Basics - Anfänger-Themen 14
D Exceptions - Ausnahmebehandlung Java Basics - Anfänger-Themen 19
D Frage zu Exceptions und der import Anweisung Java Basics - Anfänger-Themen 12
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
C Exceptions beim Beenden Java Basics - Anfänger-Themen 2
C TimerTask und Exceptions Java Basics - Anfänger-Themen 5
E Klasse öffnen, mehrere Exceptions Java Basics - Anfänger-Themen 9
C Exceptions Java Basics - Anfänger-Themen 7
G 2 Exceptions in einer Methode Java Basics - Anfänger-Themen 3
firefexx Exceptions werfen Java Basics - Anfänger-Themen 5
0 Exceptions mehrfach fangbar? Java Basics - Anfänger-Themen 4
O Exceptions Java Basics - Anfänger-Themen 3
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
H Diverse Exceptions - Troubleshooting Java Basics - Anfänger-Themen 3
J exceptions Java Basics - Anfänger-Themen 8
sc0p InterruptedExceptions und Exceptions - in Einem! Java Basics - Anfänger-Themen 5
M Frage zu Exceptions Java Basics - Anfänger-Themen 19
M Fragen zu Exceptions Java Basics - Anfänger-Themen 3
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
D Exceptions werfen + beenden Java Basics - Anfänger-Themen 12
M Exceptions aus interface-Methoden Java Basics - Anfänger-Themen 2
S File.renameTo und Exceptions / Fehlermeldung Java Basics - Anfänger-Themen 2
B Exceptions in Liste sammeln? Java Basics - Anfänger-Themen 5
O Eigene Exceptions Java Basics - Anfänger-Themen 11
O "restliche" Exceptions fangen Java Basics - Anfänger-Themen 8
H [Stil] Exceptions in der Klasse behandeln oder throwen? Java Basics - Anfänger-Themen 62
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
V Aktivitätsdiagramm / Exceptions Java Basics - Anfänger-Themen 5
V Exceptions Java Basics - Anfänger-Themen 6
K Frage zu Exceptions -> Logging Java Basics - Anfänger-Themen 6
M Eigene Fehlermeldung bei Exceptions? Java Basics - Anfänger-Themen 12
R JDom Exceptions Java Basics - Anfänger-Themen 4
R Datei einlesen mit Exceptions Java Basics - Anfänger-Themen 2
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
G Exceptions - spiegeln wir da nicht einen Spiegel im Spiegel? Java Basics - Anfänger-Themen 10
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
U Frage zu Exceptions Java Basics - Anfänger-Themen 5
mwildam Philosophiefrage zu Exceptions und Rückgabewerten Java Basics - Anfänger-Themen 6
D Static, final Objekte mit Exceptions im Konstruktor Java Basics - Anfänger-Themen 2
G Exceptions Java Basics - Anfänger-Themen 4
G ServerSocket: Exceptions und Timeout Probleme Java Basics - Anfänger-Themen 10
M Exceptions bei Textfeldern abfangen Java Basics - Anfänger-Themen 2
P Problem mit exceptions Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben