Java.Lang.Thread.DefaultUncaughtExceptionHandler
仅捕获Android运行时的异常。我试图用
Java.Lang.Integer.ParseInt("xxx");
但是DefaultUncaughtExceptionHandler
没有捕捉到异常。这是我的实施:
应用程序子类:
// OnCreate
UncaughtExceptionHandler uncaughtHandler = new UncaughtExceptionHandler();
uncaughtHandler.UncaughtExceptionHandled += OnUncaughtExceptionHandled;
Java.Lang.Thread.DefaultUncaughtExceptionHandler = uncaughtHandler;
private void OnUncaughtExceptionHandled(object sender, Throwable ex)
{
Console.WriteLine("DefaultUncaughtExceptionHandler");
}
附加课程:
private class UncaughtExceptionHandler : Java.Lang.Object, Java.Lang.Thread.IUncaughtExceptionHandler
{
public event EventHandler<Throwable> UncaughtExceptionHandled;
public void UncaughtException(Java.Lang.Thread thread, Throwable ex)
{
if (UncaughtExceptionHandled != null)
{
UncaughtExceptionHandled(null, ex);
}
}
}
如何抛出DefaultUncaughtExceptionHandler
捕获的异常?在托管代码中捕获非托管异常是一个好主意吗?
答案 0 :(得分:0)
在UncaughtExceptionHandler初始化之后,你只需要抛出一个新的异常
throw new DivideByZeroException();
在托管代码中捕获非托管异常是一个好主意吗?
叶氏。 Crashlytics(崩溃报告库) - 以相同的方式工作。