ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
2159
2159
EMPFEHLEN
-
Hallo,
wie kann ich folgendes machen:
Code :1 2 3 4 5 6 7 8
try { ... } catch (Exception1 e) catch (Exception2 e) { // handle Exceptions }
d.h. ich will mehre Exceptions auffangen, aber alle gleich behandeln.
Wie mache ich das am geschicktesten?
MD
-
Zwar sehr unsauber, aber:
Damit fangst alle aufkommenden Exceptions ab. Um genauere Informationen zu erhalten, musst du dabei in der InnerException nachsehen.Code :1 2 3 4 5
try { .. } catch (Exception ex) { .. }
-
29.11.05 10:08 #3
- Registriert seit
- Oct 2004
- Beiträge
- 483
Du kannst auch das Exeption ex weglassen, klappt auch *g*
Sprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Ist aber net sauber :P
Ok, ist es so oder so nicht *gg*
-
Ich will nicht alle Exceptions auffangen, sondern nur 2 oder 3 und diese auf die selbe Art behandeln.
geht das nicht?
-
29.11.05 16:52 #6
- Registriert seit
- Oct 2004
- Beiträge
- 483
Klar geht das, einfach im Catch Block ne IF Anweisung schreiben, und dein ex abfangen, dann kannst du genau sagen was abgefangen werden soll, und was nicht

Gruss
MFC OpenGLSprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Catch... If ... ? Autsch
Damit werden 2 bestimmte Exceptions abgefangen und alle anderen im letzen Catch-Block.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
try { ... } catch (FileNotFoundException ex) { ... } catch (NullArgumentException ex) { ... } catch (Exception ex) { .... }
-
29.11.05 20:48 #8
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Es besteht ja auch die Möglichkeit Exceptions zu schachteln... du könntest alle Exceptions die mit Datenzugriff haben beispielsweise in einer speziellen DataAccessException kapseln. Innerhalb der Behandlungsroutine für die DataAccessException knüpfst du dir dann die nested Exceptions vor...
Edit: Das ist natürlich nur ein Beispiel... wenn man sowas macht sollte man immer die entsprechenden Exceptions aus dem Framework verwenden, bevor man überhaupt in betracht zieht für solch technische Belange eigene Exception Hierarchien hochzuziehen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
using System; namespace De.Tutorials.ExceptionExamples { /// <summary> /// Zusammendfassende Beschreibung für Class1. /// </summary> class ExceptionExample { /// <summary> /// Der Haupteinstiegspunkt für die Anwendung. /// </summary> [STAThread] static void Main(string[] args) { try { SomeErrorProneDatabaseInteraction(); } catch(DataAccessException dae) { //Handle the Exception... Console.WriteLine(dae.ToString()); } Console.ReadLine(); } static void SomeErrorProneDatabaseInteraction() { if(new Random().Next(3) % 2 == 0) { throw new DataAccessException("Severe DataAccessFailure", new System.Data.DataException("database puked because connection pool was full",new SystemException("help I need somebody heeeeeeelp"))); } else { throw new DataAccessException("Informal database indisposedness",new System.Data.ConstraintException("you inserted an invalid entry... you bastard!")); } } } class DataAccessException : Exception { public DataAccessException(String message, Exception exception) : base(message, exception) { } } }
Gruss TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Ich möchte es so wie im Beispiel vom Norbert Eder machen, aber das bei allen Exceptions dieselbe Behandlung erfolgt. D.h. es soll einfach im Code ersichtlich sein, welche möglichen Exceptions auftreten können, aber alle gleich behandelt werden.
-
Dann bau dir eine Methode, die das Handling macht bzw. die Auswertung des Fehlers. Und diese Methode rufst du dann jeweils auf. Oder du behandelst überhaupt nur Exception und gibst diese dann an eine Methode weiter, die dann die InnerExceptions behandelt und auswertet.
-
30.11.05 10:05 #11
- Registriert seit
- Apr 2004
- Ort
- schweiz
- Beiträge
- 618
Oder du machst gar keinen Code in die Exception, und machst deinen Befehl im Finally... Für den Post bekomm ich bestimmt wieder was au die Backen von Norbert
~~Be water my friend~~ by bruce
~~Der einfachste Weg, bietet die schwerste Lösungssuche~~ by emkey
*****************************
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination
.:Blödeleienschreiber des 1. offiziellen Sven Uwe Fan-Clubs:.
-------------------------------------------------------------------------------------
Mir sche*** egal wer dein Vater ist!! Wenn ich fische geht keiner übers Wasser!
-
Ja, kriegst eine hinter die Backen ... weil du im Finally-Teil natürlich die Exception-Objekte nicht mehr hast und du somit NIE einen Fehler bekommst ... Eher blöd würd ich mal meinen ....
-
30.11.05 10:42 #13
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Mit catch(Exception...) (alle) Exceptions zu fangen halte ich fuer keine keine gute Idee, da man dann auch Exceptions mitbekommt, fuer die man sich nicht interessiert. Deshalb halte ich die Vorgehensweise Domaenenspezifische Exceptions zu verwenden, wie etwa solche die mit dem Datenbankzugriff zu tun haben, innerhalb einer BasisException passed zur entsprechenden Domaene (siehe mein beispiel mit DataAcesssException) zu schachteln, fuer besser.Dann bau dir eine Methode, die das Handling macht bzw. die Auswertung des Fehlers. Und diese Methode rufst du dann jeweils auf. Oder du behandelst überhaupt nur Exception und gibst diese dann an eine Methode weiter, die dann die InnerExceptions behandelt und auswertet.
Gruss TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Damit hast du grundlegend recht, es ist jedoch auch immer auch eine Frage, ob der Aufwand dafür steht oder nicht. Für ein kleines Tool zahlt es sich nicht aus. Für ein größeres Projekt macht man das dann einmal und hats in weiteren Projekten zur Verfügung.
-
30.11.05 13:08 #15
- Registriert seit
- Apr 2004
- Ort
- schweiz
- Beiträge
- 618
*backenschmerzen*
Aber, wiso ist est nicht möglich in den einzelnen Exceptions ne flag zu setzen, und im Finally den Flag abzufragen? Braucht nicht wirklich viel Code, und mann kann jede Exception gleich handeln?
*HandvorBackenHaltenTu*
~~Be water my friend~~ by bruce
~~Der einfachste Weg, bietet die schwerste Lösungssuche~~ by emkey
*****************************
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination
.:Blödeleienschreiber des 1. offiziellen Sven Uwe Fan-Clubs:.
-------------------------------------------------------------------------------------
Mir sche*** egal wer dein Vater ist!! Wenn ich fische geht keiner übers Wasser!
Ähnliche Themen
-
Mehrere Objekte vereinen (Block)
Von hauseingang im Forum 3D Studio MaxAntworten: 1Letzter Beitrag: 07.09.09, 17:54 -
Text aus einem Block stanzen!
Von Teaspooner im Forum Cinema 4DAntworten: 11Letzter Beitrag: 20.10.08, 23:19 -
Exceptions: Try Block bei Fehler dennoch komplett prüfen
Von X-Color im Forum PHPAntworten: 1Letzter Beitrag: 15.08.07, 13:07 -
Wie Felder in einem KlassenObjekt handeln?
Von Cortadillo im Forum .NET CaféAntworten: 2Letzter Beitrag: 14.05.07, 15:24 -
Mehrere Block-Elemente in einem Dokument möglich?!
Von davey im Forum CSSAntworten: 1Letzter Beitrag: 12.04.05, 14:40





Zitieren

Login





