我正在研究使用 post sharp 并且我正在尝试组合一些演示。其中一个是记录异常的方面,另一个是检查空参数并在遇到异常时抛出异常。
我遇到的问题是我希望我的异常日志记录方面记录空检查方面抛出的异常。它似乎不起作用。有人知道使这项工作的方法吗?
编辑:要清楚,异常记录器正在处理在方面之外引发的异常,但没有记录在 NullCheckAttribute 上抛出的异常
空值检查方面的代码如下
[Serializable]
public class NullCheckAttribute : OnMethodBoundaryAspect
{
[ExceptionLogger]
public override void OnEntry(MethodExecutionArgs args)
{
foreach (var argument in args.Arguments)
{
if (argument == null)
throw new InvalidOperationException("Null argument in " + args.Method.Name);
}
}
}
以及异常记录器的代码
[Serializable]
public class ExceptionLoggerAttribute : OnMethodBoundaryAspect
{
public override void OnException(MethodExecutionArgs args)
{
Console.WriteLine("Exception thrown in " + args.Method.Name);
Console.WriteLine("***Message: " + args.Exception.Message);
Console.WriteLine("***Stack trace: " + args.Exception.StackTrace);
}
}
我还应该提到,我只是为此使用免费许可证。