У меня есть несколько пользовательских классов ошибок, каждый со своей функциональностью (не показана):
Exceptions.cs
public abstract class MyAppException : Exception {
//...
}
public class ValidationException : MyAppException {
//...
}
public class AccessDeniedException : MyAppException {
//...
}
Теперь в коде за пустой страницей у меня есть:
test.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
throw new AccessDeniedException();
}
Мое намерение состоит в том, чтобы поймать это на уровне приложения:
Global.asax.cs
protected void Application_Error(object sender, EventArgs e) {
var exc = Server.GetLastError();
if (exc is MyAppException) ((MyAppException)exc).Log();
}
Но, добавив точку останова, я нахожу, что exc is MyAppException
оценивается как false
.
Куда я иду не так?