我正在研究使用後期銳利,我正試圖放在一起的幾個演示。其中一個是記錄異常的方面,另一個是檢查空參數,並在遇到一個異常時拋出異常。應用方面與postsharp方面
我遇到的問題是我想讓我的異常記錄方面記錄空檢查方面拋出的異常。它似乎沒有工作。有沒有人知道一種方法來完成這項工作?
編輯:要清楚,異常記錄器正在與拋出一個方面之外的例外,但是,這不是登錄thown在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);
}
}
的代碼,我還想說,我只使用免費許可 這個。
'它似乎沒有工作。' - 究竟發生了什麼? – Muctadir
異常記錄器正常工作正常,但NullCheckAttribute中引發的異常未被記錄。 –
是否調試過'NullCheckAttribute'來查看'MethodExecutionArgs'確實爲null? – Muctadir