Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: dirk_2909 am 23.07.07 - 13:33:40

Titel: Unhandled exception type NotesException
Beitrag von: dirk_2909 am 23.07.07 - 13:33:40
Hallo,

Die o.g. Meldung geibt mir eclipse, wenn ich folgende Zeile versuche zu speichern:

Code
Session s = NotesFactory.createSession(host, "" , "" );  

Notes.jar ist im Project eingebunden?!

Wer weiß Rat?

Titel: Re: Unhandled exception type NotesException
Beitrag von: animate am 23.07.07 - 18:25:39
das heißt, dass die Methode createSession() eine NotesException wirft wenn was schief geht. In diesem Fall musst Du entscheiden, was passieren soll. In Deinem Fall behandelst Du die Exception mit Hilfe eines try...catch Blocks.

Code
try {
    Session session = NotesFactory.createSession(host, "" , "" ); 
    String userName = session.getUserName(); 
} catch (NotesException e) {
    //Fehlerbehandlung
    logger.error(e);
}
Titel: Re: Unhandled exception type NotesException
Beitrag von: flaite am 23.07.07 - 22:51:39
NotesException ist eine sogenannte "checkedException". Daneben gibts noch "unchecked exceptions". Nicht wenige Leute denken, dass in Java mit den checked Exceptions ein bischen übertrieben wurde. Gibt dazu endlose Diskussionen.
Methoden, die eine checkedException auslösen (z.B. NotesFactory.createSession()) müssen in der aufrufenden Methode (die von dir) try-cached werden. Die Programmierer der Lotus-Java-Api hätten auch eine uncheckedException nehmen können. Mit checkedException soll das eine Art Hinweis für den Anwendungsprogrammierer sein, dass hier etwas explizit abgefangen werden sollte. Die Programmierer des Springframeworks haben z.B. in ihrem JDBC-Subsystem unchecked exceptions gewählt. In .NET sind alle exceptions unchecked.
Hier ist eine kurze Erklärung:
http://www.javapractices.com/Topic129.cjp
In Eclipse musst du ja nur links auf die Glühbirne klicken und du bekommst einen Lösungsvorschlag.

Nicht nervös machen lassen, aber die exceptions zumindest erstmal loggen wie von Thomas gezeigt oder zumindest mit e.printStackTrace(), wenn du noch nicht weisst wie loggen geht.

Gruß Axel
Titel: Re: Unhandled exception type NotesException
Beitrag von: dirk_2909 am 24.07.07 - 07:18:54
Hallo Ihr beiden  :D

Danke für die Hilfe  :D

Das mit der "Glühbirne" in eclipse ist ja echt super. Da muss man erst draufkommen (wenn man neben dem Projektgeschäft noch "nebenbei" was mit Java macht).

Werde mir die nächtsen Tage meine Java-Lektüre genauer reinziehen ( "Java lernen mit Eclipse3" und "Einstieg in Eclipse 3".

Werde mich wieder melden, wenn es Probleme gibt.
Titel: Re: Unhandled exception type NotesException
Beitrag von: flaite am 24.07.07 - 19:55:58
Am wichtigsten ist, dass du dir nicht sowas angewöhnst:
Code
try {
    Session session = NotesFactory.createSession(host, "" , "" );
    String userName = session.getUserName();
} catch (NotesException e) {
  // leere CATCH. NEVER EVER. 
}
Oder noch schlimmer, um  einen großen Codeblog sowas wie: 
Code
try {
    // lots of stuff called by lots of other stuff. 
} catch (Throwable t) {
  // leere CATCH. NEVER EVER
}
Damit wird nämlich der Fehler verborgen. Noch übler als gedankenloses Resume Next in LotusScript.
Zumindest in einen logger oder zumindest mit printStackTrace ausgeben.
Den letzteren Fall haben wir mal nach stundenlanger Suche in dem Code einer gefeierten openSource JSF Komponente gefunden.   >:(
Titel: Re: Unhandled exception type NotesException
Beitrag von: dirk_2909 am 25.07.07 - 06:59:08
Werde versuchen mir auch in Java eine ordentliche Fehlerbehandlung anzugewöhnen.

In LS fange ich scon so gut wie alles ab. fehler werden mitprotokollliert.
"Resume Next" was ist das ;-)
Titel: Re: Unhandled exception type NotesException
Beitrag von: flaite am 25.07.07 - 11:00:26
fehler werden mitprotokollliert.
Das sieht schön kurz und gut aus:
http://www.laliluna.de/log4j-tutorial_de.html