Exemple #1
0
        public void UncaughtException(Java.Lang.Thread thread, Java.Lang.Throwable ex)
        {
            try {
                Initialize();
            } catch (Exception e) {
                Android.Runtime.AndroidEnvironment.FailFast($"Unable to initialize UncaughtExceptionHandler. Nested exception caught: {e}");
            }

            mono_unhandled_exception !(ex);
            if (AppDomain_DoUnhandledException != null)
            {
                try {
                    var       jltp           = ex as JavaProxyThrowable;
                    Exception?innerException = jltp?.InnerException;
                    var       args           = new UnhandledExceptionEventArgs(innerException ?? ex, isTerminating: true);
                    AppDomain_DoUnhandledException(AppDomain.CurrentDomain, args);
                }
                catch (Exception e) {
                    Logger.Log(LogLevel.Error, "monodroid", "Exception thrown while raising AppDomain.UnhandledException event: " + e.ToString());
                }
            }
            if (defaultHandler != null)
            {
                defaultHandler.UncaughtException(thread, ex);
            }
        }
 public void UncaughtException(Java.Lang.Thread thread, Java.Lang.Throwable ex)
 {
     if (client.AutoNotify)
     {
         client.Notify(ex, ErrorSeverity.Fatal);
     }
     if (nextHandler != null)
     {
         nextHandler.UncaughtException(thread, ex);
     }
 }
 public void UncaughtException(Java.Lang.Thread t, Java.Lang.Throwable e)
 {
     if (!HandleException(e) && mDefaultHandler != null)
     {
         mDefaultHandler.UncaughtException(t, e);
     }
     else
     {
         Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
         Java.Lang.JavaSystem.Exit(1);
     }
 }
Exemple #4
0
 public void UncaughtException(Java.Lang.Thread thread, Java.Lang.Throwable ex)
 {
     mono_unhandled_exception(ex);
     if (AppDomain_DoUnhandledException != null)
     {
         try {
             var args = new UnhandledExceptionEventArgs(ex, isTerminating: true);
             AppDomain_DoUnhandledException(AppDomain.CurrentDomain, args);
         }
         catch (Exception e) {
             Logger.Log(LogLevel.Error, "monodroid", "Exception thrown while raising AppDomain.UnhandledException event: " + e.ToString());
         }
     }
     if (defaultHandler != null)
     {
         defaultHandler.UncaughtException(thread, ex);
     }
 }
Exemple #5
0
 public void UncaughtException(Java.Lang.Thread t, Java.Lang.Throwable e)
 {
     @interface?.UncaughtException(t, e);
     action(t, e);
 }
 public static void uncaughtException(this Java.Lang.Thread.IUncaughtExceptionHandler handler, Java.Lang.Thread thread, Java.Lang.Throwable throwable)
 {
     handler.UncaughtException(thread, throwable);
 }