Exceptions throw

Status
Nicht offen für weitere Antworten.

PollerJava

Top Contributor
Hállo,

lese gerade ein Buch über C++ und da hab ich folgendes gelesen:

Code:
try {
...
throw "Fehler in der ersten irgendwas";


...

throw "Fehler irgendwo unten";
}
catch (...)
{
}


kann ich das in Java auch machen, gesehen hab ich das in Java noch nie, proktisch wärs aber doch,

lg
 
M

maki

Gast
gesehen hab ich das in Java noch nie, proktisch wärs aber doch,
Klar geht das, aber praktisch?
Wofür?
Um Leuten das Leben schwer zu machen?

Wieso wirfst du Exceptions in deinem try Block?

So sollten Exceptions nicht verwendet werden! :meld:
 

Murray

Top Contributor
maki hat gesagt.:
Wieso wirfst du Exceptions in deinem try Block?

So sollten Exceptions nicht verwendet werden! :meld:
Warum eigentlich nicht? Welchen Sinn hat ein try-Block, in dem keine Exceptions geworfen werden?
 
M

maki

Gast
Warum eigentlich nicht? Welchen Sinn hat ein try-Block, in dem keine Exceptions geworfen werden?
Die Sache ist folgendermassen: Er sollte Code ausführen, der Exceptions wirft und nicht selber welche werfen ;)

Als Beispiel wären da die checked Exceptions, welche geworfen werden können, wenn man eine DB Connection aufmacht:
Code:
try { 
    Class.forName("com.imaginary.sql.msql.MsqlDriver"); 
    String url = "jdbc:msql://www.myserver.com:1114/contact_mgr"; 
    Connection conn = DriverManager.getConnection(url,"user1","password");  
} catch (Exception e) { 
    throw new MeineEigeneRuntimeException("Konnte keine Verbindung zur DatenBankherstellen!", e);        
}

So wie sich sein Beispiel oben liest, benutzt er wirft er die Exceptions, um den Programmfluss zu steuern.
Schräges beispiel:

Code:
Iterator it= meineListe.iterator();

try{
    while (true) {
        System.out.println(it.next());
    }
} catch (NoSuchElementException e) {}
...
Man würde nie so über einer iterator laufen, oder? ;)
Denn dafür gibt es weitaus bessere Möglichkeiten.

Zurück zum Original Beispiel, mit etwas "Fleisch auf den Knochen":
Code:
try {
    if (i == 0 )
        throw new Exception( "i darf nicht null sein!" );
....
} catch(Exception e) {
    // ...und nun folgt eine Total unsinnige Fehlerbehandlung...
}
Falls i ein Parameter einer Methode war der nicht 0 sein darf, sollte er das dem Aufrufer folgendermassen klar machen:
Code:
if (i==0)
    throw new NullpointerException("i darf nicht null sein!");

Selber Exceptions in einem try block werfen die dann im folgenden catch Block verarbeitet werden ist echt schräg ;)
 

Murray

Top Contributor
maki hat gesagt.:
Selber Exceptions in einem try block werfen die dann im folgenden catch Block verarbeitet werden ist echt schräg ;)

Wenn man die Exceptions zur Programmsteuerung nutzt, ist das wohl wirklich nicht so gut - schon aus Performancegründen, denn die Verarbeitung einer Exception ist sicher "teurer" als eine normale Fallunterscheidung. Trotzdem würde ich es nicht pauschal ablehnen, in einem try-Block Exceptions zu werfen.

Wenn ich zum Beispiel eine XML-Datei einlese und darin bestimmte Einträge suche, dann können da ja verschiedene Fehler auftreten: IO-Fehler (Datei nicht gefunden oder nicht lesbar), Parse-Fehler (XML-Datei nicht well-formed) oder logische Fehler (gesuchte Einträge nicht gefunden). Für den weiteren Programmfluss ist es egal, welche dieser Fehlermeldungen aufgetreten ist, daher würde ich sie gemeinsam behandeln:

Code:
try {
  
  File f = ...
  Document dom = ... // hier können IO- oder Parse-Fehler auftreten
  
  String tagName = ...
  Element elem = ...
  if ( elem == null) throw new Exception( "Element " + tagName + " in der Datei " + f.getAbsolutePath() + " nicht gefunden");

  ...
} catch ( Exception e) {
  //-- gemeinsame Fehlerbehandlung

 ...
}
 
M

maki

Gast
OK Murray, das überzeugt mich, ich nehme meine Aussage zurück :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
W Exceptions behandeln Allgemeine Java-Themen 16
Kirby.exe Exceptions erklärt Allgemeine Java-Themen 5
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
J Exceptions Allgemeine Java-Themen 1
Z Java Exceptions - Auf leeres Feld prüfen Allgemeine Java-Themen 10
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
V Exceptions Allgemeine Java-Themen 2
G Exceptions mit jre 7u40 Allgemeine Java-Themen 2
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
E LookAndFeel Exceptions bei UIManager.setLookAndFeel Allgemeine Java-Themen 4
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
C Threads und Exceptions Allgemeine Java-Themen 7
B Webstart Exceptions Allgemeine Java-Themen 7
R Threads Exceptions von Threads abfangen im ThreadPool Allgemeine Java-Themen 5
S Runtime Exceptions in eine Datei schreiben Allgemeine Java-Themen 7
G Internationalisierung von Exceptions Allgemeine Java-Themen 5
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
F Alle Exceptions abfangen Allgemeine Java-Themen 4
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
B Logging von Exceptions Allgemeine Java-Themen 7
G Designfrage: Exceptions in Konstruktoren Allgemeine Java-Themen 7
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
M Verwendung von unchecked exceptions & bereits vorhandenen exceptions was priorisieren Allgemeine Java-Themen 3
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
H Exceptions und IO Allgemeine Java-Themen 17
B Exceptions? Allgemeine Java-Themen 4
D Throws Exceptions Allgemeine Java-Themen 14
M Verständnisfrage Exceptions Allgemeine Java-Themen 2
V Exceptions als Fehlerbehandlung "missbrauchen"? Allgemeine Java-Themen 10
DEvent Wie behandelt man Exceptions in Iterator? Allgemeine Java-Themen 2
J Verständnisfrage zu exceptions Allgemeine Java-Themen 3
A Junit Exceptions testen Allgemeine Java-Themen 3
R Loading-Thread und Exceptions abfangen. Allgemeine Java-Themen 4
P Exceptions dokumentieren. Allgemeine Java-Themen 6
G Exceptions weiterwerfen Allgemeine Java-Themen 2
T Generics und Exceptions Allgemeine Java-Themen 6
F Wann und wie Exceptions einsetzen? Allgemeine Java-Themen 13
J Method.invoke -> Exceptions der Funktion abfangen Allgemeine Java-Themen 5
T Frage zu Exceptions Allgemeine Java-Themen 3
G Java-Exceptions werden nicht ganz angezeigt. Wo ändern? Allgemeine Java-Themen 3
J Probleme mit Exceptions Allgemeine Java-Themen 11
R Exceptions mit aktuellen Programminformationen ausgeben? Allgemeine Java-Themen 2
märliprinz com.sap.dbtech.jdbc.exceptions.JDBCDriverException Allgemeine Java-Themen 2
G Alle Exceptions loggen Allgemeine Java-Themen 4
G Frage zu Exceptions Allgemeine Java-Themen 6
M err oder alle Exceptions eines Programms abfangen Allgemeine Java-Themen 4
G Exceptions ohne Zeilennummer (Unknown Source) Allgemeine Java-Themen 8
T Exceptions im statischem Klassencode Allgemeine Java-Themen 5
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
R Warum kein throw? Allgemeine Java-Themen 3
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben