Exception Handling Problem
am 23.04.2008 00:37:53 von Stephen Noronha
Hi,
I am a lil confused about exception handling. I have a main app and i am
importing 2 DLL's. one of the DLL's is for connection/datasets etc and the
other has logging errors to file.Both DLL's have try{} catch(exception
ex){throw ex; } and i am force feeding errors so that I can catch the
exceptions.
I have done this:
1. for DLL1 (Logging Errors), I am force feeding (5/0) and it throws
"Attempted to divide by zero." exception and its propagating to the parent
2. for DLL 2 (connnection/datasets), I am writing a non-existing STP and it
thows "System.Data.SqlClient.SqlException Message: Could not find stored
procedure 'stp_XXXX'. exception and its propagating to the parent
3. the same DLL (DLL 2), I am passing a non-existent DB and it throws
"System.NullReferenceException Message: Object reference not set to an
instance of an object." exception and its propagating to the parent I want a
proper error message "DB does not exist or something" but it does not.
I have debugged the application and i observe that in the catch of DLL2, it
does show me propermessage but when it propagates to the parent the message
is lost. Can someone please explain what I am doing wrong?
Thanks for your help,
Stephen
Re: Exception Handling Problem
am 23.04.2008 21:31:26 von Teemu Keiski
Hi,
throw ex;
loses information about the stack.
http://aspadvice.com/blogs/joteke/archive/2004/04/15/2277.as px
You'd better just use throw; / inner exception or follow the instructions on
the sfollowing post
http://weblogs.asp.net/fmarguerie/archive/2008/01/02/rethrow ing-exceptions-and-preserving-the-full-call-stack-trace.aspx
What comes to your case, it would help to see some of the error handling
logic. Basically, you might need to throw a custom exception on that case or
somehow create defensive code . Seems as if passing non-existent db causes
exception on some other object, maybe you shoukd catch
NullReferenceException and pass it up as "DB does not exist" (the best guess
I can make here)
--
Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice.com/joteke
http://teemukeiski.net
"stephen" wrote in message
news:ecx%23BmMpIHA.1952@TK2MSFTNGP05.phx.gbl...
>
> Hi,
>
> I am a lil confused about exception handling. I have a main app and i am
> importing 2 DLL's. one of the DLL's is for connection/datasets etc and the
> other has logging errors to file.Both DLL's have try{} catch(exception
> ex){throw ex; } and i am force feeding errors so that I can catch the
> exceptions.
> I have done this:
>
> 1. for DLL1 (Logging Errors), I am force feeding (5/0) and it throws
> "Attempted to divide by zero." exception and its propagating to the parent
> 2. for DLL 2 (connnection/datasets), I am writing a non-existing STP and
> it thows "System.Data.SqlClient.SqlException Message: Could not find
> stored procedure 'stp_XXXX'. exception and its propagating to the parent
> 3. the same DLL (DLL 2), I am passing a non-existent DB and it throws
> "System.NullReferenceException Message: Object reference not set to an
> instance of an object." exception and its propagating to the parent I want
> a proper error message "DB does not exist or something" but it does not.
>
> I have debugged the application and i observe that in the catch of DLL2,
> it does show me propermessage but when it propagates to the parent the
> message is lost. Can someone please explain what I am doing wrong?
>
> Thanks for your help,
> Stephen
>