Я на самом деле очень смущен тем, почему вы хотите это сделать? Вы пытаетесь создать пользовательское исключение, чтобы предоставить больше информации? Если это так, то вы хотите использовать этот шаблон.
Сначала определите пользовательский класс исключений, производный от Exception:
public class MyCustomException : Exception // Or you could derive from ApplicationException
{
public MyCustomException(string msg, Exception innerException)
: base(msg, innerException)
{
}
}
Вы также можете определить дополнительные параметры в своем конструкторе исключений, чтобы они содержали еще больше информации, если хотите. Тогда в вашем приложении код ...
public void SomeMethod()
{
try
{
// Some code that might throw an exception
}
catch (Exception ex)
{
throw new MyCustomException("Additional error information", ex);
}
}
Вы должны быть уверены, что отслеживаете внутреннее исключение, потому что оно будет содержать наиболее полезную информацию стека вызовов о том, что вызвало исключение.