我有一个方面可以在异常时向控制台写入一些内容。我有一个在其构造函数上引发异常的基类,以及一个在其构造函数上具有方面的派生类。
我希望构造函数上的派生类方面会捕获基类异常,但它不会。
这是设计使然吗?这是一个错误吗?还是我做错了什么?
这是示例代码(控制台应用程序):
[Serializable]
public class OnExceptionWriteAspect : OnMethodBoundaryAspect
{
public override void OnException(MethodExecutionEventArgs eventArgs)
{
Console.WriteLine("Exception catched on Aspect.");
}
}
public class BaseClass
{
public BaseClass()
{
throw new Exception();
}
}
public class DerivedClass : BaseClass
{
[OnExceptionWriteAspect]
public DerivedClass()
: base()
{
}
}
public class Program
{
static void Main(string[] args)
{
try
{
new DerivedClass();
}
catch
{
Console.WriteLine("Exception catched on Main.");
}
}
}
输出是:
Main 上捕获的异常。