4
我打電話使用委託(動態配置服務):Delegate.DynamicInvoke - 捕獲異常
public void CallService (Delegate service, IContext ctx)
{
var serviceArgs = CreateServiceArguments(service, ctx);
service.DynamicInvoke(serviceArgs);
}
在這一點上我想趕上那發生在調用的服務方法的所有異常,但是,我做的不想捕獲由於DynamicInvoke調用而發生的任何異常。例如:
service
委託拋出DomainException
- >捕獲異常DynamicInvoke()
拋出MemberAccessException
因爲委託是一個私有方法 - >不捕獲異常,讓它泡了
希望我很清楚我在問什麼。如何確定捕獲的異常是來自DynamicInvoke調用本身還是來自底層代理。
哦是的,並且:我不能使用異常類型來決定!服務本身完全有可能拋出一個MemberAccessException,因爲它可以自己做一些代理東西...