Guten Abend,
Wenn ich die Aufgabe richtig verstanden habe, soll ich die Aufgabe mit einer eigener try / catch - Anweisung umprogrammieren ?
Aufgabe) In unserer Klasse für die grafischen Eingabedialog überprüfen wir durch den Vergleich einer Variablen mit dem wert null, ob die Eingabe abgebrochen wurde. Dieses Konstruktion kann grundsätzlich auch durch eine Ausnahmebehandlung ersetzt werden. Welche Ausnahme käme dafür infrage? Wie könnten Sie diese Ausnahme auslösen?
Ein kleiner Tipp: Sehen Sie sich genau an, welchen Wert der Eingabedialog liefert, wie die Eingabe abgebrochen wird. benutzen Sie dazu gegebenenfalls auch den Debugger von Eclipse.
[CODE lang="java" title="Ausnahmebehandlung"]public class EingabeDialog {
//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);
}[/CODE]
Mein Vorschlag:
[CODE lang="java" title="Einlsen"]package eingabedialog;
import javax.swing.JOptionPane;
public class Eingabe {
private static String lesen(String text) {
String eingabeTemp;
eingabeTemp = JOptionPane.showInputDialog("Bitte geben Sie einen " + text + " Wert ein:");
boolean gelungen = false;
while ( gelungen == false ) {
eingabeTemp = lesen (text);
try {
if (eingabeTemp != null)
gelungen = true;
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Ihre Eingabe war nicht gültig. Bitte wiederholen...");
}
}
return (eingabeTemp);
}
}[/CODE]
und die Testklasse:
[CODE lang="java" title="main - Klasse"]package eingabedialog;
import eingabedialog.Eingabe;
import javax.swing.JOptionPane;
public class EingabeTest {
public static void main(String[] args) {
String wert;
// Aufruf der Methode einlesen() mit einem int-Typ!
try {
wert = Eingabe.lesen(wert);
JOptionPane.showMessageDialog(null," Ihre Eingabe war"+wert);
}
// Behandlung der eigenen Exception
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}[/CODE]
In der main() - Klasse Zeile 14 macht Eclipse folgender Fehlermeldung: Die Methode lesen(String) aus dem Typ Eingabe ist nicht sichtbar (visible)
Danke!
Wenn ich die Aufgabe richtig verstanden habe, soll ich die Aufgabe mit einer eigener try / catch - Anweisung umprogrammieren ?
Aufgabe) In unserer Klasse für die grafischen Eingabedialog überprüfen wir durch den Vergleich einer Variablen mit dem wert null, ob die Eingabe abgebrochen wurde. Dieses Konstruktion kann grundsätzlich auch durch eine Ausnahmebehandlung ersetzt werden. Welche Ausnahme käme dafür infrage? Wie könnten Sie diese Ausnahme auslösen?
Ein kleiner Tipp: Sehen Sie sich genau an, welchen Wert der Eingabedialog liefert, wie die Eingabe abgebrochen wird. benutzen Sie dazu gegebenenfalls auch den Debugger von Eclipse.
[CODE lang="java" title="Ausnahmebehandlung"]public class EingabeDialog {
//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);
}[/CODE]
Mein Vorschlag:
[CODE lang="java" title="Einlsen"]package eingabedialog;
import javax.swing.JOptionPane;
public class Eingabe {
private static String lesen(String text) {
String eingabeTemp;
eingabeTemp = JOptionPane.showInputDialog("Bitte geben Sie einen " + text + " Wert ein:");
boolean gelungen = false;
while ( gelungen == false ) {
eingabeTemp = lesen (text);
try {
if (eingabeTemp != null)
gelungen = true;
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Ihre Eingabe war nicht gültig. Bitte wiederholen...");
}
}
return (eingabeTemp);
}
}[/CODE]
und die Testklasse:
[CODE lang="java" title="main - Klasse"]package eingabedialog;
import eingabedialog.Eingabe;
import javax.swing.JOptionPane;
public class EingabeTest {
public static void main(String[] args) {
String wert;
// Aufruf der Methode einlesen() mit einem int-Typ!
try {
wert = Eingabe.lesen(wert);
JOptionPane.showMessageDialog(null," Ihre Eingabe war"+wert);
}
// Behandlung der eigenen Exception
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}[/CODE]
In der main() - Klasse Zeile 14 macht Eclipse folgender Fehlermeldung: Die Methode lesen(String) aus dem Typ Eingabe ist nicht sichtbar (visible)
Danke!