Ausnahmen behandeln aber wie?!

java__neuling

Aktives Mitglied
Hallo,

habe da ein kleines Problem.

Ich habe einen kleinen Programmcode geschrieben in den eine eine exception behandelt werden soll

hier erstmal der code:

Java:
  public void teste(){

    if (form2dKonsole==null){   // Überprüfen ob das AusgabeObjekt existiert.
      System.err.println("Die View/Ausgabekonsole wurde nicht initialisiert.");
    }
    else {
      // Der Test wurde erfolgreich initialisiert

try {
      Kreis2dModell kreis2dModell = new Kreis2dModell(new Punkt2d(10,20),30/Math.PI);
      form2dKonsole.ausgabe(kreis2dModell);

      Rechteck2dModell rechteck2dModell = new Rechteck2dModell(new Punkt2d(10,20),30,40);
      form2dKonsole.ausgabe(rechteck2dModell);

	  Quadrat2dModell quadrat2dModell = new Quadrat2dModell(new Punkt2d(10,20),30);
	  form2dKonsole.ausgabe(quadrat2dModell);

} catch (IllegalModificationException e) { //Ausnahme behandeln aber wie!?
	System.out.println("Fehler!");
  }
      testErgebnis = true;



    }
  }

wie man an meinen kommentar erkennen kann, stelle ich mir die frage wie die ausnahme behandelt werden soll.
eventuell wird die ausnahme schon in irgendeiner weise behandelt aber so wie ich den codeschnipsel verstehe ist es so das, wenn eine exception auftritt nur das wort "fehler" ausgegeben wird aber letzentlich wird die ausnahme nicht richtig behandelt.

könnt ihr ein kleines bißchen licht ins dunkeln bringen?

danke und gruß
java neuling ;-)
 
G

gman

Gast
wie die ausnahme behandelt werden soll.

Das hängt davon ab, was es für vernünftige Optionen gibt. "Vernünftig" heißt in diesem
Zusammenhang: Kann man das Programm in einem sinnvollen Zustand weiterlaufen lassen,
oder dem Benutzer die Gelegenheit geben auf den Fehler zu reagieren?

In den meisten Fällen läuft es aber darauf hinaus den Fehler zu loggen/auszugeben.
Und das geht etwas besser bzw. aussagekräftiger mit:

Java:
} catch (IllegalModificationException e) {
    e.printStackTrace();
}
 
M

Marcinek

Gast
Doch damit wird die Exception minimal behandet.

Es wird auf einen Fehler hingewiesen.

Behandeln von Außnahmen ist in seltenen Fällen der Weg die Außnahme zu verhindern im nachinein. Also du wirst diese Außnahme nicht im Code verhindern können.

Weil wenn du eine Liste vränderst über die du gerade iterierst, dann bekommst du eine KonkurentModException. Da die Änderung im Quellcode vorgesehen ist, wirst du sie nur durch Codeänderung abschaffen können.

Normalerweise würde man die Behandlung eher darin verstehen, dass die Exception zu einem bestimmten Zeitpukt gefangen und ordentlich protokolliert und entsprechende Aktionen zur Verhinderung eines Programmabstutzes einleiten.

Darunter verstehe ich:

- Fehlermeldung anzeigen für User
- Datenbanken zurückrollen um teilweise Fehlerhaften Transaktionen zu korrigieren
- Höchstens auf Defaultwerte zurückgreifen, wenn die Exception es fachlich erlaubt.
 

Ralph-Uwe

Bekanntes Mitglied
Hallo,

eine Exception besagt, dass Dein Programm nicht richtig weiter arbeiten kann, weil ein Fehler aufgetreten ist.
Zum Beispiel kann eine Datei nicht gefunden werden oder ein String nicht in eine int umgewandelt werden.

In solchen Fällen ist es die Aufgabe des Programmierers dafür zu sogen, dass das Programm trotzdem vernünfigt
weiter arbeiten kann, ohne das es kommentarlos im Nirwana endet.

Eine mögliche Behandlung könnte sein, den User zu einen erneuten Eingabe aufzufordern, oder eine Datei erst
zu erstellen bevor man darauf zugreift.
 

java__neuling

Aktives Mitglied
erstmal danke für die schnellen antworten!

wenn innerhalb meines programmcodes ein fehler auftaucht wird doch erstmal nur
das wort "fehler" ausgegegen, oder? und anschließend würde das programm abstürzen oder nicht?!
 
M

Marcinek

Gast
Ja es kommt eine Ausgabe "Fehler"

Und danach würde das Programm in diesem Fall normal beendet werden. Weil nach dem catch () auch nichts weiter ist.

Würde da noch mehr kommen, dann würde das auch weiter laufen.

Mach mal nach dem

Code:
      testErgebnis = true;
noch
Code:
System.out.println("Nach dem Catch");


Dann wirst du sehen,d ass das auch ausgeführt wird.
 

java__neuling

Aktives Mitglied
mhhhh danke für den tipp!

und wie kann ich so etwas nun richtig behandeln? anstatt einfach nur so eine dumme aussage auszugeben?

sorry, dass ich so blöde frage aber habe keine ahnung wie ist jetzt darauf reagieren müsste.....
 
M

Marcinek

Gast
Da musst du schauen, was sinnvoll ist.

Die frage ist, was kannst du tun?

Du solltest schonmal mehr Ausgaben machen.

Wie das geht steht weiter oben
 
G

gman

Gast
Probier es mal damit aus. Die Methode "printStackTrace()" gibt sehr viel Informationen zu dem
Fehler aus (unter anderem auch den Namen der Datei und die Zeile in der der Fehler auftritt).

Wenn du an der Stelle aber einfach nur den Benutzer informieren willst, reicht es aus die
Fehlermeldung etwas ausführlicher zu schreiben. Hängt auch davon ab ob der Benutzer die
Ausgabe überhaupt sieht. Ist das ein Konsolenprogramm oder wandert die Ausgabe nur in eine
Log-Datei?
 

Eldorado

Bekanntes Mitglied
Also ich glaube du interpretierst den Begriff Ausnahme behandeln falsch bzw. hängst diesen viel zu hoch.

Du musst dir erstmal klar machen, dass Ausnahmen passieren und erstmal nichts schlimmes sind und du dieses zwar abfangen musst (wenn sie nicht dein Programm zum Absturz bringen sollen) aber dich nicht unbedingt behandeln.

Das behandeln ist hier ja öfter schon beschrieben worden: also Ausgaben an den user oder die Ausgabe des Fehlers in eine log-Datei oder wenn du die Chance hast den Fehler anderweitig zu beheben.

Aber wenn du eine Fehlermeldung ausgibst behandelst du den Fehler schon richtig, zumindest wenn du nicht anderweitig was gegen ihn unternehmen kannst. Also es gibt keine Aktion die du mit einer Exception unbedingt machen musst.

Ich hoffe ich konnte das ganze nochmal deutlich schreiben.
 

java__neuling

Aktives Mitglied
sorry, eine frage habe ich doch nocht!

klingt jetzt eventuell voll bescgeuert aber trotzdem noch eine frage.

ich habe hier folgenden codeschnipsel "gefunden"

Java:
llegalModificationException = new IllegalModificationException

darüber bin ich etwas verwirrt da dieser schipsel für mich als newbie so aussieht als ob
von meiner ausnahme klasse ein objekt erzeugt wird.
ich verstehe aber gar nicht warum man dies machen sollte?

wenn eine ausnahme auftritt wird diese behandelt und FERTIG!

also warum noch einobjekt meiner ausnhameklasse erzeugen?
oder anders formuliert in welchen fällen tut man dies denn überhaupt?!

mal wieder besten dank an euch! ;-)
 
G

gman

Gast
Ist jetzt schwer zu beurteilen ohne den Context zu kennen in dem der Schnipsel auftritt. Aber
so eine Exception wird ja auch irgendwo im Code geworfen. Normalerweise schreibt man da aber
nur:

Java:
  throw new IllegalModificationException();
 

java__neuling

Aktives Mitglied
@gman

danke hast mir sehr geholfen.
da ich mit diverseb paketen und klasse arbeite ergeben sich immer wieder neue fehler in anderen klassen wenn ich kompelieren möchte..... :-(


wenn ich den bereits oben gezeigten quellcode kompelieren möchte erhalte ich nun folgende fehlermledung:




wäre wirklich super wenn ihr mich noch einmal einen tippp geben könntet!

danke und gruß
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
B Ausnahmen Java Basics - Anfänger-Themen 20
M Input/Output Eine Zahl eingeben mit Ausnahmen Java Basics - Anfänger-Themen 12
B Erste Schritte try-catch-Klauseln, überprüfte Ausnahmen Java Basics - Anfänger-Themen 4
K Shortcuts in Java ohne Ausnahmen verfügbar? Java Basics - Anfänger-Themen 2
C Ausnahmen in Java Java Basics - Anfänger-Themen 11
S ablauflogik von ausnahmen Java Basics - Anfänger-Themen 5
M Exceptionhandling von selbstgeschriebenen Ausnahmen Java Basics - Anfänger-Themen 2
B Ausnahmen - Exception Java Basics - Anfänger-Themen 3
B Ausnahmen abfangen Java Basics - Anfänger-Themen 3
S Frage zu Ausnahmen Java Basics - Anfänger-Themen 2
O Java 17 keine Pflicht um Exceptiones zu behandeln? Java Basics - Anfänger-Themen 2
J Socked closed - wie behandeln ? Java Basics - Anfänger-Themen 10
S Rekursives Durchlaufen eines Verzeichnisses - AccessDeniedException behandeln Java Basics - Anfänger-Themen 1
S Groß- und Kleinbuchstaben gleich behandeln Java Basics - Anfänger-Themen 3
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4
S Benutzereingabe über Scanner Klasse korrekt behandeln Java Basics - Anfänger-Themen 9
J Frame schließen, Ereignis behandeln, Vorgang abbrechen Java Basics - Anfänger-Themen 4
B Events behandeln Java Basics - Anfänger-Themen 4
H [Stil] Exceptions in der Klasse behandeln oder throwen? Java Basics - Anfänger-Themen 62
A Text als Link behandeln Java Basics - Anfänger-Themen 8
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
sliwalker CVS-Datei einlesen und Fehler richtig behandeln Java Basics - Anfänger-Themen 5
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
P Installation JRE 8u321 startet, geht aber nicht weiter Java Basics - Anfänger-Themen 1
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
L Mergesort (aber anders) Java Basics - Anfänger-Themen 2
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
U Den Kuchen aufteilen - aber wie? (Rebalancing-Algorithmus) Java Basics - Anfänger-Themen 14
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
AGW App programmiert lassen, aber Änderungen vornehmen Java Basics - Anfänger-Themen 13
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Fehler, aber ich weiß nicht warum Java Basics - Anfänger-Themen 3
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
J Mit OpenJDK entwickeln aber Oracle SE Runtime installieren? Java Basics - Anfänger-Themen 6
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
J ShortCut erstellen aber wie die dll einbinden Java Basics - Anfänger-Themen 3
I "\n" aus ArrayList enfernen, aber wie?! Java Basics - Anfänger-Themen 4
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
J JavaEditor kompiliert aber startet nicht Java Basics - Anfänger-Themen 1
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
O Array benutzen aber WIE? Java Basics - Anfänger-Themen 18
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
A Variabler Rekursionsaufruf, aber wie? Java Basics - Anfänger-Themen 6
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
K Armstrong Programm geht nur bis 1000, aber nicht weiter Java Basics - Anfänger-Themen 2
pkm Best Practice BufferedImage in JPane darstellen - aber wie? Java Basics - Anfänger-Themen 22
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
D int x in System.out.println(), aber wie? Java Basics - Anfänger-Themen 1
J Serialisieren, aber wie? Java Basics - Anfänger-Themen 3
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
snipesss Java-Code gedownloaded, funktioniert aber nicht? Java Basics - Anfänger-Themen 9
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
P Irgendein billiger Fehler aber ich find ihn nicht Java Basics - Anfänger-Themen 16
Thallius Date für DatePicker formatieren aber wie? Java Basics - Anfänger-Themen 9
J Nullpointer aber wo? Java Basics - Anfänger-Themen 12
E Dumme Frage, aber... Java Basics - Anfänger-Themen 15
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
Tacofan Schleife aber nur wie? Java Basics - Anfänger-Themen 10
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
J Programm funktioniert aber unsafe operations? Java Basics - Anfänger-Themen 3
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7

Ähnliche Java Themen


Oben