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