1) Я создал тестовое исключение.
public class TestException : Exception
{
string info;
public string Info { get { return info; } set { info = value; } }
public TestException() { }
public TestException(string message) : base(message) { }
public TestException(string message, Exception inner) : base(message, inner) { }
protected TestException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
}
2) В функции где-то на сайте я получил что-то вроде этого:
catch (Exception e)
{
TestException myOwnException = new TestException(e);
myOwnException.Info = "test";
LogError(myOwnException);
}
Однако я не могуприведение из базового исключения в мой класс.LogError ожидает TestException.
Я пытался создать это в своем классе Exception (позволило бы мне написать TestException myOwnException = e;)
public static implicit operator TestException(Exception e)
{
return new TestException(e);
}
Но я просто продолжаю получать: пользовательскийпреобразования в базовый класс или из него запрещены.
Как я могу привести исключение из оператора catch в мой класс TestException?(Я также пробовал TestException test = (TestException) e; но это просто возвращает ошибку.