Getting the full exception from .NET

While we’re on the topic of .NET coding, here’s another technique.  If you thought my last post was short, here’s an even shorter one…

Ever wanted to make sure you returned an error message with all of the inner exceptions?  I know I’ve wasted a lot of time trying to debug code that only returned the top level exception, especially if it occurred in production due to an environmental issue that couldn’t be repro-ed in dev, and the production environment didn’t allow for Visual Studio debugging.

The below function is a recursive function that calls itself until it has traversed all of the inner exceptions.  It will make sure you always get all of the exceptions delimited by a “/” down to the lowest level.  The deepest level message will be the last one in the string.

        public static string buildExceptionMessage(String message, Exception ex)
        {
            Exception innerException = ex.InnerException;
            message += ex.Message;
            if (ex.InnerException != null)
            {
                buildExceptionMessage(message + "/", ex.InnerException);
            }
            return message;
        }
Technorati Tags:

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s