Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo Forum,
ich starte über eine GUI eine Funktion.
Java:
public void actionPerformed(ActionEvent e)
{
new Thread (new Runnable()
{
@Override
public void run()
{
btnStart.setText("");
textArea.append("gestartet\n");
btnStart.setEnabled(false);
new AS.simulationsstart(textArea,progressBar,treemodel);
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
textArea.append("beendet\n");
progressBar.setValue(progressBar.getMaximum());
btnStart.setIcon(null);
btnStart.setText("Start");
btnStart.setEnabled(true);
}
});
}
}).start();
}
Nun kann es ja passieren, das in meinem Code ein Fehler auftritt, nur dann bricht der Code ab und das war es. Kann ich dann irgendwie darauf reagieren. So das ich das ich die Methode neu starten kann, weil beispielsweise die Inputparameter erneuert wurden?
mfg
Jens
Den Fehler kenne ich nicht genau, denn es gibt mehrere Fehler, die ich nicht vorhersehen kann (die Funktion ruft eine Datei auf und bearbeitet diese, die Datei kenne ich nicht).
Ich hätte gerne eine reaktion auf alle Fehler:
also
Java:
try
{
funktion(x,y,z);
}
catch()
{
System.out.print("Funktion konnte nicht ausgeführt werden")
}
Okay, das ist schonmal super, ich habe nun (auch wenn es wahrscheinlich eher unsauber programmiert ist) innerhalb meiner funktion(x,y,z) schon try und catch Böcke angewandt, wenn von diesen Blöcken nun einer anspringt, reagiert, dann trotzdem der catch(throwable t)?
mfg
Jens
Okay, das ist schonmal super, ich habe nun (auch wenn es wahrscheinlich eher unsauber programmiert ist) innerhalb meiner funktion(x,y,z) schon try und catch Böcke angewandt, wenn von diesen Blöcken nun einer anspringt, reagiert, dann trotzdem der catch(throwable t)?
mfg
Jens
Catch bedeutet soviel wie "Abfangen". Wenn der Catch-Block INNERHALB deiner Funktion nun also die Fehlermeldung "Abfängt" dann passiert da auch sonst nichts mehr mit. Sie wird nur weiter geschmissen solange sie kein catch anfangen kann/will.
Das heisst, wenn jetzt das Huhu nicht ausgegeben werden konnte(auch wenn es unwahrscheinlich ist), dann wird lediglich "Huhu missglückt" ausgegeben und nicht noch zusätzlich "Funktion gescheitert"??
mfg
Jens
Jo Throwable natürlich groß und Fehler ist natürlich Exception. Es ging mir lediglich ums Prinzip. Der Code ist ja nur ein Beispiel*G*.
vielen Dank die Tipps sind wirklich Hilfreich!!!!Tausend Dank
Also FALS es eine Klasse Fehler mit extends Exception oder implements Throwable existiert, und das Sysout nun genau diesen throwen würde (throw new Fehler() dann würde die Exception INNERHALB der Funktion diese Exception behandeln und außerhalb bekommt man davon nichts mit. Jede andere Exception (welche NICHT von "Fehler" ableitet) würde nicht durch die catch innerhalb der Funktion abgefangen werden und weiter durchrasseln bis sie irgendwo behandelt wird oder eben das Programm (der Thread) abstürzt.