无法处理Xamarin Forms中未处理的异常

时间:2019-02-25 10:34:06

标签: c# xamarin.forms

我需要在Xamarin Forms Android应用中处理所有未处理的异常。我读到可以在MainActivity的OnCreate中添加的事件处理程序中捕获它们,如下所示:

protected override void OnCreate(Bundle savedInstanceState)
{
    ...
    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs args)
{
    Exception e = (Exception)args.ExceptionObject;
    System.Diagnostics.Debug.WriteLine(e.Message);
}

我在主页上引起了异常:

public MainPage()
{
    InitializeComponent();
    Exception_Btn.Clicked += (object s, EventArgs e) =>
    {
        int var1 = 1;
        int var2 = 0;
        // Cause a DivideByZeroException
        var1 /= var2;
    };
}

但是,事件处理程序从不触发,应用程序中断,并且“调试”窗口显示仍未处理异常。我想念什么?

1 个答案:

答案 0 :(得分:1)

实际上,在强制关闭应用程序之前会打印调试消息。

如果在CurrentDomain_UnhandledException函数的末尾添加一个断点(在下面的截图中,该断点在第30行),您将看到它。

enter image description here