Exception Handling Problem

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
>