如果委托指向5个方法,则在调用委托时,在第一个方法中发生重复.因为异常发生,所以无法调用4个函数中的其余函数.如何让代理人在异常幸福的情况下调用其他函数
您需要使用Delegate.GetInvocationList基本上将委托拆分为单个操作,并依次使用catch子句调用每个操作来处理异常.
例如:
Action[] individualActions = (Action[]) multicast.GetInvocationList();
foreach (Action action in individualActions)
{
try
{
action();
}
catch (Exception e)
{
// Log or whatever
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您可能只想捕获特定类型的异常.