Я рекомендую использовать Inner Exception
для получения удобного сообщения об исключении, а также системного сообщения об ошибке. Если вы получите MyException
, вы увидите ваше сообщение об исключении и системное сообщение об исключении на MyException.ToString()
.
Кроме того, если вас интересует кодирование Exception, вы можете использовать функцию фрагмента кода VS. Просто введите «Exception» и дважды нажмите клавишу TAB, тогда VS создаст класс Exception
как следующий код.
try
{
DataTable dt = q.ExecuteQuery(); //This throws a timeout.
}
catch (SessiontTimeoutException ex)
{
throw new MyException("my friendly exception message", ex);
}
[Serializable]
public class MyException : Exception
{
public MyException() { }
public MyException(string message) : base(message) { }
public MyException(string message, Exception inner) : base(message, inner) { }
protected MyException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
}