我们有2个自定义类(baseClass和ChildClass),子类继承自baseClass 当我们在childClass上得到一个异常时,应该调用baseClass上的OnException事件
它将像MVC Controller OnException Events
我们将用于记录。
答案 0 :(得分:0)
在一般情况下,不可能这样做。 MVC OnException有效,因为框架捕获任何未处理的异常并将它们转发给OnException。用于调用控制器操作的框架代码类似于:
try
{
controller.SomeAction();
}
catch(Exception ex)
{
controller.OnException(ex);
}
整个实现依赖于负责处理异常的代码的调用者。通过任何代码都可以使用的通用调用,您无法对如何调用类进行任何假设。
如果我们以某种方式可以使所有调用通过通过基类,我们可以做类似的事情:
public class Base
{
public BlahaMethod()
{
try
{
DoBlaha();
}
catch(Exception ex)
{
OnException(ex);
}
}
protected abstract void DoBlaha();
private void OnException(Exception ex)
{
// Handle exception
}
}
public class Derived
{
protected virtual void DoBlaha()
{
throw new NotImplementedException();
}
}
答案 1 :(得分:0)
您可以使用try-catch-finally构造捕获异常。唯一的通用异常处理程序(我知道)是unhandled exception handler in the appdomain。