我正试图防止我的应用在遇到任何类型的UnhandledException
时崩溃。我已经将所有可以找到的代码都放在了网上,但主要是出于记录目的的处理程序。
我似乎找不到办法吞下错误并继续前进。我不在乎在这里讨论这是否是一个好主意。问题仅在于是否有可能吞下所有错误(并记录)并继续下去,还是Android
总是崩溃?
在UWP
中,一切都很好。异常得到处理,记录,并且运行时运行良好。没有理由仅仅因为某些后台任务找不到某些资源或其他原因而使应用程序崩溃。
注意:在Global Exception Handling in Xamarin Cross platform,我已经看到了答案。但是它们并不能防止崩溃。仅有助于记录。即使问题在于预防。所以它不是真的重复。谢谢。
这是我的代码,尽管看不到在第一个处理程序中设置Handled
或Terminating
的地方
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
AppDomain.CurrentDomain.UnhandledException += (s, e) =>
{
(e.ExceptionObject as Exception).Log();
};
TaskScheduler.UnobservedTaskException += (s, e) =>
{
e.Exception.Log();
};
AndroidEnvironment.UnhandledExceptionRaiser += (s, e) =>
{
e.Handled = true;
e.Exception.Log();
};
Xamarin.Forms.Forms.Init(this, bundle);
var app = new App();
LoadApplication(app);
}
谢谢!