.NET: как преобразовать исключение в строку?

Когда возникает исключение (во время отладки в среде IDE), у меня есть возможность просмотреть подробности исключение:

enter image description here

Но в коде, если я вызываю exception.ToString () , я не вижу этих полезных деталей:

System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'FetchActiveUsers'.
  [...snip stack trace...]

Но в Visual Studio есть некоторая магия, где она может скопировать исключение в буфер обмена :

enter image description here

Что дает полезную информацию:

System.Data.SqlClient.SqlException was unhandled by user code
  Message=Could not find stored procedure 'FetchActiveUsers'.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=16
  LineNumber=1
  Number=2812
  Procedure=""
  Server=vader
  State=62
  StackTrace:
       [...snip stack trace...]
  InnerException:

Что ж, я хочу это!

Каким будет содержание:

String ExceptionToString(Exception ex)
{ 
    //todo: Write useful routine
    return ex.ToString();
}

, способного творить ту же магию. Есть ли где-нибудь встроенная функция .NET? Есть ли у Exception секретный метод для преобразования его в строку?

51
задан Ian Boyd 7 November 2011 в 05:45
поделиться