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; }

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

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

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

Facebook photo

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

Connecting to %s