abbruch Exception lässt sich nicht erstellen

freebeer

Mitglied
Hallo liebe Community,

ich bräuchte einmal Hilfe beim Thema ExceptionHandling.

Und zwar lässt sich im folgenden Code die AbbruchException nach der if-Abfrage nicht erstellen.

Folgender Fehlertext:

"Es kann nicht auf ein einschließendes (enclosing) Exemplar des Typs EingabeDialog zugegriffen werden. Die Zuordnung muss mit einem einschließenden
(enclosing) Exemplar des Typs EingabeDialog qualifiziert werden (z.B. x.new A() - wobei x ein Exemplar von EingabeDialog ist)."

Die Klasse AbbruchException ist mit den benötigten Konstruktoren erstellt und vererbt die Klasse Exception.


Java:
private static String lesen(String text) throws AbbruchException {
        String eingabeTemp;
       
        eingabeTemp = JOptionPane.showInputDialog("Bitte geben Sie einen " + text + " Wert ein:");
       
        if (eingabeTemp == null) {
            
            throw new AbbruchException("Die Eingabe für" +text+ "wurde abgebrochen");
        
        }
        
        return (eingabeTemp);
 
Was bringt dich auf die Idee, dass AbbruchException das Problem ist?

Die Fehlermeldung beinhaltet den Begriff AbbruchException noch nicht mal ...
Stattdessen steht da wiederholt "EingabeDialog".
Wie wär's, wenn du ir stattdessen diese Klasse vornimmst oder zumindest mal den Quelltext dazu postest und die Zeile, welche die Fehlermeldung ausgelöst hat? (steht ja im Stacktrace).
 
Das Problem deutet auf die Nutzung einer inneren Klasse hin, also ein Aufbau ähnlich wie:
Java:
class OuterClass {
    
    class InnerClass {
        
    }
    
}

Eine Instanz von InnerClass kann es nur geben, wenn es auch eine Instanz von OuterClass gibt. Hintergrund ist, dass die InnerClass auch auf Elemente von OuterClass zugreifen kann.

Wenn das nicht gewünscht ist und Du die innere Klasse unabhängig von einer äußeren Klasse verwenden können willst, dann muss die innere Klasse static sein:
Java:
class OuterClass {
    
    static class InnerClass {
        
    }
    
}

Wichtige Punkte:
a) Diese Beispiele sind minimale Beispiele - In der Regel verwendet man auch noch weitere Modifier und so.
b) Wenn die Innere Klasse unabhängig von der äußeren Klasse sein soll, dann macht es ggf. auch Sinn, diese in einer eigenen Datei zu erstellen und eben nicht als innere Klasse! Das muss nicht sein, aber das ist durchaus öfters mal sinnvoll.

Das wäre zumindest, was ich aus der Fehlermeldung heraus lese.
 

Neue Themen


Zurück
Oben