Fragen zu Exceptions

Status
Nicht offen für weitere Antworten.

Mane123

Bekanntes Mitglied
Hallo,

ich habe ein Projekt erstellt und hierzu eine Frage.
Zuerst einmal der komplette Quelltext.

1. Die Klasse zum Testen mit der main-Methode:

Java:
import javax.swing.JOptionPane;
//für die Klasse der Ausnahme AbbruchException
import eindialogV2.AbbruchException;
//für die Klasse mit dem Eingabedialog
import eindialogV2.EingabeDialogV2;

public class EingabeDialogTestV2 {
	
	public static void main(String[] args) {
		int intWert = 0;
		double doubleWert = 0;
		
		//der Aufruf der Methode einlesen() mit einem int-Typen
		try {
				intWert = EingabeDialogV2.einlesen(intWert);
				JOptionPane.showMessageDialog(null,"Ihre Eingabe war " + intWert);
		}
		//die Behandlung der eigenen Exception
		catch (AbbruchException e) {
			JOptionPane.showMessageDialog(null,e.getMessage());
			
		}
		
		//der Aufruf der Methode einlesen() mit einem double-Typen
		try {
				doubleWert = EingabeDialogV2.einlesen(doubleWert);
				JOptionPane.showMessageDialog(null,"Ihre Eingabe war " + doubleWert);
		}
		//die Behandlung der eigenen Exception
		catch (AbbruchException e) {
			JOptionPane.showMessageDialog(null,e.getMessage());
		}
	}
}


2. Die Klasse mit der eigenen Klasse AbbruchException:

Java:
package eindialogV2;

public class AbbruchException extends Exception {
	
	/**
	 * die serialVersionUID wurde automatisch über Eclipse ergänzt
	 */
	private static final long serialVersionUID = 6034903258759501562L;

	//der Standard-Konstruktor
	AbbruchException() {
		super();
	}
	
	//der Konstruktor zur Übergabe einer Meldung
	//er ruft über super den Konstruktor der Basisklasse auf
	AbbruchException(String meldung) {
		super(meldung);
	}
}


3. Die Klasse für dein Eingabedialog:

Java:
package eindialogV2;

//für den Eingabedialog
import javax.swing.JOptionPane;

public class EingabeDialogV2 {
	
	//die Hilfsmethode zum Einlesen der Daten über den Dialog
	//Beschreibung siehe oben
	private static String lesen(String text)throws AbbruchException {
	
		String eingabeTemp;
		
			
		eingabeTemp = JOptionPane.showInputDialog("Bitte geben Sie einen " + text + " Wert ein:");
		//Wenn die Eingabe abgebrochen wurde, wird eine selbst definierte Ausnahme ausgelöst
		if (eingabeTemp == null)
			throw new AbbruchException ("Die Eingabe für " + text + " wurde abgebrochen");
		
		return (eingabeTemp);
	}
	
	
	//die überladene Methode einlesen() für den Typ int
	//Beschreibung siehe oben
	public static int einlesen(int wert) throws AbbruchException {
		int wertTemp = 0;
		String eingabeTemp;
		boolean gelungen = false;
		//solange Werte einlesen, bis die Konvertierung gelingt
		//der Abbruch wird in der Methoden lesen() behandelt
		while (gelungen == false) {
			eingabeTemp = lesen("int");
			try {
				wertTemp = Integer.parseInt(eingabeTemp);
				gelungen = true;
			}
			catch (NumberFormatException e) {
				JOptionPane.showMessageDialog(null,"Ihre Eingabe war nicht gültig. Bitte wiederholen...");
			}
		}
		
		return wertTemp;
	}
	
	//die überladene Methode einlesen() für den Typ double
	//Beschreibung siehe oben bzw. bei der Methode für den int-Typ
	public static double einlesen(double wert) throws AbbruchException {
		double wertTemp = 0;
		String eingabeTemp;
		boolean gelungen = false;
		while (gelungen == false) {
			eingabeTemp = lesen("double");
			try {
				wertTemp = Double.parseDouble(eingabeTemp);
				gelungen = true;
			}
			catch (NumberFormatException e) {
				JOptionPane.showMessageDialog(null,"Ihre Eingabe war nicht gültig. Bitte wiederholen...");
			}
		}
		
		return wertTemp;
	}
		
	//die überladene Methode einlesen() für den Typ float
	//Beschreibung siehe oben bzw. bei der Methode für den int-Typ
	public static float einlesen(float wert) throws AbbruchException {
		float wertTemp = 0F;
		boolean gelungen = false;
		String eingabeTemp;
		while (gelungen == false) {
			eingabeTemp = lesen("float");
			try {
				wertTemp = Float.parseFloat(eingabeTemp);
				gelungen = true;
			}
			catch (NumberFormatException e) {
				JOptionPane.showMessageDialog(null,"Ihre Eingabe war nicht gültig. Bitte wiederholen...");
			}
		}
		
		return wertTemp;
	}
}


Wenn ich in der Methode lesen (String) für die Variable eingabeTemp keine Zahl, sondern z.B. "XYZ" erfasse, dann wird in der Methode einlesen (Int) die NumberFormatException abgefangen und die Eingabe kann noch einmal wiederholt werden.
Warum wird denn hier nicht die komplette Methode einlesen (Int) abgebrochen?

Wenn ich den gleichen Effekt (also dass die Eingabe in der While Schleife wiederholt wird) in der Methode lesen (String) zu Verständniszwecken durchführen möchte, dann klappt das nicht:

Java:
private static String lesen(String text)throws AbbruchException {
	
		boolean wiederholen = true;
		String eingabeTemp = " ";
		
		while (wiederholen == true) {
		eingabeTemp = JOptionPane.showInputDialog("Bitte geben Sie einen " + text + " Wert ein:");
		//Wenn die Eingabe abgebrochen wurde, wird eine selbst definierte Ausnahme ausgelöst
		if (eingabeTemp == null)
			throw new AbbruchException ("Die Eingabe für " + text + " wurde abgebrochen");
		
		}
		return (eingabeTemp);
	}

Der Code ist zwar sinnlos, da es eine Endlosschleife wäre, aber ich wollte probieren, dass die Eingabe trotz Klicken auf abbrechen immer wieder ausgeführt wird.

Warum klappt das hier nicht, in der Methode einlesen (Int) aber schon?

Vielen Dank!
 

Schumi

Bekanntes Mitglied
Hier hängst Du ja in einer whileschleife solange die Nummer nicht korrekt ist, da die Exception gefangen und abgearbeitet wird, geht es nach dem catch weiter und die Schleife wird wiederholt.
Java:
        while (gelungen == false) {
            eingabeTemp = lesen("double");
            try {
                wertTemp = Double.parseDouble(eingabeTemp);
                gelungen = true;
            }
            catch (NumberFormatException e) {
                JOptionPane.showMessageDialog(null,"Ihre Eingabe war nicht gültig. Bitte wiederholen...");
            }
        }

In dem unteren Bspl. wirfst Du ja die Exception, dabei wird die aktuelle Methode an dieser Stelle verlassen.
 

Mane123

Bekanntes Mitglied
Danke für die Antwort!

Was meinst du denn mit "wirfst du die Methode"? Meinst Du damit, dass ich die Exception nicht behandle, sondern an die Aufrufende Methode zurückgebe?

Viele Grüße
 

Mane123

Bekanntes Mitglied
Noch eine kleine Frage:


Java:
private static String lesen(String text)throws AbbruchException {
    
        String eingabeTemp;
        
            
        eingabeTemp = JOptionPane.showInputDialog("Bitte geben Sie einen " + text + " Wert ein:");
        //Wenn die Eingabe abgebrochen wurde, wird eine selbst definierte Ausnahme ausgelöst
        if (eingabeTemp == null)
            throw new AbbruchException ("Die Eingabe für " + text + " wurde abgebrochen");
        
        return (eingabeTemp);
    }

Ich möchte die eigene AbbruchException Klasse weglassen.
Stattdessen möchte ich eine bereits vorhanden Ausnahme verwenden.
Ich möchte die Ausnahmenbehandlung mit try, catch schreiben.

Allerdings weiß ich nicht so recht wie das gehen sollte, mein Ansatz ist eher Bescheiden:

Java:
	try {
			eingabeTemp = JOptionPane.showInputDialog ("Bitte geben Sie einen Int ein");
		    
		}
		
		catch () {
			
			
		}

Wie kann ich mit "null" eine Ausnahme auslösen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
Silver-Blue fragen zu Swing und catch Exceptions Java Basics - Anfänger-Themen 2
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
PaulG Fragen zu Binärbaum Java Basics - Anfänger-Themen 21
P Methoden Aquarium (Fragen zum Scanner) Java Basics - Anfänger-Themen 5
T Erste Schritte Fragen zu meinen kleinen Programm Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben