Exception beendet das Programm.

Status
Nicht offen für weitere Antworten.
J

jimorrison

Gast
Hallo liebe User,


könnt ihr mir bitte dabei helfen, wie ich das übergeordnete Fenster nach einer Exception an dem Bildschirm halten kann?
Denn nach einer Exception, meine ist hier eine aritmetische Exception, wird das Programm beendet. Aber, ich möchte das der Eingeber, seine Daten nicht von neuem eingeben muss. Deshalb möchte ich dass das Fenster nicht verschwindet. Ich habe eine Routine zum Fangen dieser Exception programmiert, das Fenster jedoch wird verschwunden, nachdem die Fehlermeldung ausgegeben wird und man auf "OK" dieses Fensters klickt. Hier ist diese Routine:



Code:
    for(int i=3;i<5;i++){
      try 
      {
        p = Float.parseFloat(this.TextField[i].getText());
      
        //Wenn eine Eingabe falsch war   
      }catch(Exception e)
      {
        GotheMethoden g = new GotheMethoden();
            String  fehler = "Geben Sie bitte in der Zeile: "+this.label[i+1].getText()+
            "\n eine Zahl ein";
      //Erzeugt ein Fehlermeldungstext der Klasse JOptionpane  
            g.fehlermeldung(fehler,frame);
            ok = false;
      }
    }


Was muss ich im Catch-Bereich noch schreiben, damit das Fenster der hinter der Fehlermeldung steht, nicht verschwindet, nachdem ich auf Ok gecklickt habe ?

Gibt keine Methode, woman es verhindert, dass das Programm sich nicht beendet ?
 
S

SlaterB

Gast
und wenn der Fehler nicht autritt, dann wird bei OK das Fenster nicht geschlossen?
schwer vorzustellen, da passiert doch nicht viel außer ok=false

teste auch mal ohne Exception, aber mit ok=false,
vielleicht hängt es davon ab oder das Fenster wird generell geschlossen,
die Exception scheint sonst jedenfalls nix damit zu tun zu haben,

musst mehr Code posten, was für ein Fenster, was ist Ok, was genau wird da alles gemacht, was passiert nach dieser Schleife noch alles?
 
G

Guest

Gast
SlaterB hat gesagt.:
und wenn der Fehler nicht autritt, dann wird bei OK das Fenster nicht geschlossen?
schwer vorzustellen, da passiert doch nicht viel außer ok=false

teste auch mal ohne Exception, aber mit ok=false,
vielleicht hängt es davon ab oder das Fenster wird generell geschlossen,
die Exception scheint sonst jedenfalls nix damit zu tun zu haben,

musst mehr Code posten, was für ein Fenster, was ist Ok, was genau wird da alles gemacht, was passiert nach dieser Schleife noch alles?

Danke für die Antwort :toll: .

Das ist so in Java, wenn eine Exception auftritt, dann beendet diese, das Programm, wo sie geschrieben ist. Mein Programm, ist ein Frame, wo man in Textfeldern eingaben eingeben muss. In manchen Feldern müssen Zahlen eingegeben werden. Diese wandle ich mit der Methode ParseFloat() in Zahlen um, aba was ist wenn der Benutzer keine Zahlen eingegeben hat, sonder Zeichen, wie k,#...dann kann die Methode ParseFloat damit nichts anfangen und so wird das Programm beendet nach einer Arithmetischen Fehlermeldung in der Konsole, was der Benutzen nicht mitbekommt. Wenn ich diese Exception fange, dann wird ihm eine Fehler Meldung mit"Sie müssen eine Zahl eingeben", mit der Klasse JOptionpan ausgegeben, die ich im Catch-Bereich programmiert habe. Aber wenn der Benutzer auf OK dieser Meldung klickt, dann verschwindet das Fenster, wo der Benutzer die falschen eingaben eingegeben hat und so, muss er von neuem versuchen.

"Ok" ist nur eine Variable, die ich benutze um zu sichern, dass die Eingaben richtig waren, und erst danach, kann ich die eingegebenen Daten in der Datenbank speichern.
Das ist ein Teil dieses Programms:

Code:
/**Methode zur Speicherung eines Datensatzes*/
protected void speichereDaten()
{
  
  DBVerbindung myDB = new DBVerbindung();
  
//Referenz auf das Statement holen
  Statement myStatement = myDB.getStatement();
  myDB.useDB();
  ResultSet myResultSet = null;
 
 //Alle Felder sind voll( das überprüft die Methode Felde(), die ein boolean Wert zurückgibt
  if (Felde())
  {
    //Die nicht Charakter Daten müssen umgewandelt werden
    boolean ok = true;
    float p=0;
   
    for(int i=3;i<5;i++){
      try 
      {
        p = Float.parseFloat(this.TextField[i].getText());
      
    //Wenn eine Eingabe falsch war   
      }catch(Exception e)
      {
        GotheMethoden g = new GotheMethoden();
        String  fehler = "Geben Sie bitte in der Zeile: "+this.label[i+1].getText()+
            "\n eine Zahl ein";
        // Diese Methode erzegt eine Fehlermeldung der Klasse JOptionpane
        g.fehlermeldung(fehler,frame);
        ok = false;
      }
    }
    
    //Die umzuwandelnde Eingaben waren richtig
    if(ok)
    {
      
    //Alle daten speichern
      String insert  =
          "INSERT INTO werkzeug ( Gruppe , Bzeichnung , Bestellnummer , " +
          "LLfdNr , LLfName , Werkstoff,Bemerkung, Preis, Anzahl )"+
          "VALUES ('"+ this.TextField[0].getText() +"'"+",'"+this.TextField[1].getText()+
          "','" + this.TextField[2].getText()+"'"+",'"+this.TextField[5].getText()+"','"+
          this.MComboGruppe.getSelectedItem()+"','" +this.TextField[6].getText()+"','"+
          this.TextField[7].getText()+"','"+this.TextField[3].getText()+"','"+this.TextField[4].getText()+"');";
      

      
      
      
      try {
        myStatement.execute(insert);
      }
      catch (SQLException e)
      {
      JOptionPane.showMessageDialog(
      frame, // Referenz auf das übergeordnete Fenster
      "Fehler. Es werden keine Daten in der Datenbank geändert", // Meldungstext
      "Fehler", // Fenstertitel
      JOptionPane.INFORMATION_MESSAGE // Meldungstyp
      );
      }
      
    }
    //Verbindung zur Datenbank schliessen
    myDB.closeStatement();
    myDB.closeDBVerbindung();
    
    //Änderungen im Frame und der Datenbank aktualisieren
    TableDataWerkzeug  td = new TableDataWerkzeug(frame.tm,art);
    td.getAktuelleDaten();
    this.setVisible(false);
    }
  
}
 
S

SlaterB

Gast
am Ende der Operation steht
this.setVisible(false);

deswegen wird das Fenster geschlossen, völlig egal ob eine abgefange Exception auftritt oder nicht,
daher macht deine ganze Frage keinen Sinn

> Gibt keine Methode, woman es verhindert, dass das Programm sich nicht beendet ?

natürlich, führe
this.setVisible(false);
nicht aus ;)

wenn du das von der Exception abhängig machen willst, dann speichere die Information, ob eine Exception auftrat, doch in einer Variablen,
so wie jetzt schon ok=false,

was spricht dagegen, das Fenster nur bei ok=true zu schließen?
das kannst du doch abfragen,
so wie du jetzt schon die DB-Abfrage in das if setzt,

----------

ohne ok=true brauchst du übrigens die DB-Verbindung nicht,
also setze auch den Code vom Anfang (DBVerbindung myDB = new DBVerbindung(); ) + Ende (myDB.closeDBVerbindung(); ) in den if-Block,
am besten in eine separete Operation und hier nur

//Die umzuwandelnde Eingaben waren richtig
if(ok)
{
DBKlasse.speichereDaten(x,y, ..);

//Änderungen im Frame und der Datenbank aktualisieren
TableDataWerkzeug td = new TableDataWerkzeug(frame.tm,art);
td.getAktuelleDaten();
this.setVisible(false);
} else {
// nix machen, User ist eh schon informiert
}
 
G

Guest

Gast
SlaterB hat gesagt.:
am Ende der Operation steht
this.setVisible(false);

deswegen wird das Fenster geschlossen, völlig egal ob eine abgefange Exception auftritt oder nicht,
daher macht deine ganze Frage keinen Sinn

> Gibt keine Methode, woman es verhindert, dass das Programm sich nicht beendet ?

natürlich, führe
this.setVisible(false);
nicht aus ;)

wenn du das von der Exception abhängig machen willst, dann speichere die Information, ob eine Exception auftrat, doch in einer Variablen,
so wie jetzt schon ok=false,

was spricht dagegen, das Fenster nur bei ok=true zu schließen?
das kannst du doch abfragen,
so wie du jetzt schon die DB-Abfrage in das if setzt,

----------

ohne ok=true brauchst du übrigens die DB-Verbindung nicht,
also setze auch den Code vom Anfang (DBVerbindung myDB = new DBVerbindung(); ) + Ende (myDB.closeDBVerbindung(); ) in den if-Block,
am besten in eine separete Operation und hier nur

//Die umzuwandelnde Eingaben waren richtig
if(ok)
{
DBKlasse.speichereDaten(x,y, ..);

//Änderungen im Frame und der Datenbank aktualisieren
TableDataWerkzeug td = new TableDataWerkzeug(frame.tm,art);
td.getAktuelleDaten();
this.setVisible(false);
} else {
// nix machen, User ist eh schon informiert
}

Ich danke dir sehr sehr herzlich !! :applaus:

Ich bin so blind, dass ich es nicht mitbekommen hab, dass diese this.setVisible(false) auf die ganze Methode wirkt!

Noch mal ein grösses Danke :toll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
H Object cast exception Allgemeine Java-Themen 7
W Queue.remove() -> no such element exception Allgemeine Java-Themen 17
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
N A java Exception has occured Allgemeine Java-Themen 8
G javafx "class path" exception Allgemeine Java-Themen 5
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
tom.j85 Exception bei Abfrage von Ländercodes in API? Allgemeine Java-Themen 13
S Exception Allgemeine Java-Themen 5
LimDul Streams und Exception Allgemeine Java-Themen 8
C FileLock - Exception wird immer geworfen Allgemeine Java-Themen 4
S Wertbeschränkung Exception oder Anpassung? Allgemeine Java-Themen 4
D Nullpointer Exception Problem Allgemeine Java-Themen 5
Kirby.exe Nullpointer Exception bei Queue Allgemeine Java-Themen 5
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
S RMI Exception Allgemeine Java-Themen 0
S MSSQL Exception & Connection String Allgemeine Java-Themen 19
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
coolian warum bekomme ich ein string index out of bounds exception Allgemeine Java-Themen 17
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
M Klassen Serializable Exception Allgemeine Java-Themen 1
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
X jvm exception abfangen und an externes Programm schicken Allgemeine Java-Themen 4
G Java/LibGDX File Loading Exception Allgemeine Java-Themen 2
B Exception in Application init method Allgemeine Java-Themen 5
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
perlenfischer1984 Dialect class not found exception Allgemeine Java-Themen 15
Thallius Bekomme keine Exception mit Stacktrace mehr. Was habe ich getan? Allgemeine Java-Themen 13
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Z Exception wird nicht ausgelöst Allgemeine Java-Themen 2
0 Animiertes Gif anzeigen - NullPointer Exception Allgemeine Java-Themen 19
T Konstruktor löst exception aus Allgemeine Java-Themen 7
KilledByCheese Dezimal nach Hexadezimal rechner wirft seltsame exception Allgemeine Java-Themen 4
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
D Codeausführung bevor Exception abgeschlossen ist Allgemeine Java-Themen 11
T FileNotFound Exception Allgemeine Java-Themen 9
L Exception/Error auf JDialog umleiten Allgemeine Java-Themen 2
C Arithmetic Exception, obwohl nichts 0 ist Allgemeine Java-Themen 5
M A Java Exception has occured. Allgemeine Java-Themen 1
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4
M Exception in thread "AWT-EventQueue-0" Allgemeine Java-Themen 6
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
E A Java Exception Has Occured Allgemeine Java-Themen 4
T Exception handling Allgemeine Java-Themen 7
P lazy loading exception Allgemeine Java-Themen 0
A Interpreter-Fehler OutOfMemory Exception mit Base64 decode Allgemeine Java-Themen 3
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
K Exception in thread "AWT-EventQueue-1" Allgemeine Java-Themen 2
K Gepacktes Jar-File gibt beim Doppelklick eine Exception aus Allgemeine Java-Themen 4
P Eigene Exception Klasse Allgemeine Java-Themen 7
N Java Interne Exception Allgemeine Java-Themen 4
B JUnit4 Exception-Test Allgemeine Java-Themen 4
127.0.0.1 SQL Exception, kein Driver Allgemeine Java-Themen 9
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
H java.util.Timer und Funktion mit SQL Exception Allgemeine Java-Themen 5
Ollek Barcode mit Barcode4J erzeugen - Exception Allgemeine Java-Themen 4
Z Concurrent Modification Exception - HashMap (kein remove) Allgemeine Java-Themen 4
E Eigene Exception Klasse erstellen Allgemeine Java-Themen 3
L Variablen IO Exception weil File angeblich nicht exisitert Allgemeine Java-Themen 10
T Exception versus Rückgabeparamter Allgemeine Java-Themen 26
S Exception enableDepthTest Allgemeine Java-Themen 7
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
S Bildaufbau durch Servlet -> Exception Allgemeine Java-Themen 11
E Queue: Wie kann hier ein null-Pointer Exception auftreten?! Allgemeine Java-Themen 11
S Exception beim Schreiben des Dataset in XML Datei Allgemeine Java-Themen 8
M Webstart Exception trotz signierten JARs Allgemeine Java-Themen 3
E Interpreter-Fehler unbekannte Exception Allgemeine Java-Themen 12
B Komische Exception Allgemeine Java-Themen 4
U SwingWorker und Exception Allgemeine Java-Themen 3
B Nullpointer Exception in Array Allgemeine Java-Themen 15
G WebService Exception Allgemeine Java-Themen 3
M Best Practices Exception Handling für eigene library Allgemeine Java-Themen 8
G PermSpace Exception Allgemeine Java-Themen 2
S Invalid Chunk Exception Allgemeine Java-Themen 3
N URLClassLoader Exception Allgemeine Java-Themen 5
Apo Java Sound Mark/Reset Exception Allgemeine Java-Themen 14
M Exception ganz sehen Allgemeine Java-Themen 2
D Problem mit EasyMock und Exception Allgemeine Java-Themen 6
B Exception wird geworfen, ich darf sie aber nicht abfangen. Allgemeine Java-Themen 10
7 Exception wird nicht aufgefangen Allgemeine Java-Themen 8
C Desktop.mail Problem. IO Exception: Failed to open. Allgemeine Java-Themen 3
L [Exception] RSA Verschlüsselung. Allgemeine Java-Themen 16
Final_Striker Exception bei neuem Look und Feel Allgemeine Java-Themen 2
N Exception beim auslesen einer JTable Allgemeine Java-Themen 5
nrg Stilistisch korrektes Exception Handling Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben