抛出异常时调用其他函数 - C#委托

Rag*_*v55 0 c#

如果委托指向5个方法,则在调用委托时,在第一个方法中发生重复.因为异常发生,所以无法调用4个函数中的其余函数.如何让代理人在异常幸福的情况下调用其他函数

Jon*_*eet 5

您需要使用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)

当然,您可能只想捕获特定类型的异常.