【发布时间】:2017-02-13 18:01:09
【问题描述】:
我使用System.Action 作为我的代表。
public event Action myEvent;
myEvent+=MyMethod1;
myEvent+=MyMethod2;
还有别的地方
myEvent.Invoke();
现在的问题是,MyMethod1() 在调用时会出现异常。但我仍然希望在此调用期间调用 MyMethod2()。
怎么做?
关于潜在的异常: 这实际上是一个 Unity 问题,当一个方法注册到一个事件时,这个方法包含了游戏对象的交互。当相关的 MonoBehaviour 被删除时,该方法仍然存在,但游戏对象交互会抛出异常。
【问题讨论】:
-
您不能在事件处理程序中捕获异常吗?
-
我可以,但我想在委托或事件代码中这样做,因为它在 Unity 中更清晰。而且我不想添加 Unity 标签,因为它实际上是纯 C# 问题。
-
我不知道您为什么认为它“更清晰”,但这是错误的。我会在下面接受 Luaan 的回答。