-1
我想從catch塊中引發一個事件,基本上我有一個類,在其中我做了一些處理,如果它引發異常,我需要從調用方法知道這一點。由於這個解決方案的分佈式特性被記錄,拋出並以不同的方式處理,因此我沒有辦法將異常冒泡到表面,因此無法知道該過程從調用方法失敗,我試圖提升來自finally塊的事件,也嘗試傳遞一個布爾變量作爲ref並將其設置爲false在catch中,但它也沒有工作。下面是什麼,我試圖做一個簡化版本:從catch塊內部提高事件
static void Main(string[] args)
{
var error = false;
var demo = new Demo();
ProcessThis(demo, 0);
demo.ErrorEvent +=() => error = true;
Console.WriteLine(error.ToString());
Console.ReadKey();
}
private static void ProcessThis(Demo demo, int val)
{
try
{
var result = 10/val;
}
catch (Exception)
{
Console.WriteLine("error");
demo.RaiseErrorEvent();
throw;
}
}
public class Demo
{
public event ErrorDelegate ErrorEvent;
public delegate void ErrorDelegate();
public void RaiseErrorEvent()
{
if (this.ErrorEvent != null)
{
this.ErrorEvent();
}
}
}
您正在訂閱事件* *您已經調用了'ProcessThis' ... –