Когда генерируется исключение (при отладке в среде IDE), у меня есть возможность просмотреть сведения об исключении:
Но в коде, если я вызываю exception.ToString()
, я не вижу этих полезных деталей:
System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'FetchActiveUsers'.
[...snip stack trace...]
Но Visual Studio имеет некоторую магию, где она может копировать исключение в буфер обмена:
Что дает полезные сведения:
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
секретный метод, чтобы преобразовать его в строку?