我用System.Action
作爲我的代表。調用時c#委託:如何調用事件(委託)上的所有方法與潛在的例外?
public event Action myEvent;
myEvent+=MyMethod1;
myEvent+=MyMethod2;
而且別的地方
myEvent.Invoke();
現在的問題是,MyMethod1()
將somethimes有例外。但我仍然希望MyMethod2()
在此調用過程中被調用。
如何做到這一點?
關於電位異常: 這實際上是一個Unity問題,當一個方法註冊到一個事件,並且這個方法包含了gameobject的交互。當相關的MonoBehaviour被刪除時,這個方法仍然存在,但是GameObject交互會拋出異常。
你不能在事件處理程序中捕獲異常嗎? –
我可以,但我想在委託或事件代碼中執行此操作,因爲它在Unity中更清晰。我不想添加Unity標籤,因爲它實際上是純粹的C#問題。 – cdytoby
我不知道你爲什麼認爲它「更清晰」,但它是錯誤的。我會在Luaan的回答下面。 –