13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xamarin.Forms(Android)で未処理の例外が発生した場合にアプリがクラッシュしないようにする

Posted at

Xamarin.Formsを使ったAndroidアプリ開発をしています。

Androidで取り合えずアプリが落ちないようにするにはどうすればよいか調べました。

最初に調べて出てきたのは下記のUnhandledExceptionイベントハンドラを使うものです。
未処理の例外を捕まえることが出来ますが、未処理なのでアプリが終了してしまいます。
グローバルな例外のキャッチをしたいだけだったり、
例外のログを出力したりしたいだけならここで処理すると良いと思います。

AppDomain.CurrentDomain.UnhandledException += (s, e) => { };

こちらが本命で、アプリが終了しないように出来ます。
未処理の例外が発生したときに、Handledをtrueにすることで強制的に補足済みの例外にしてしまいます。

AndroidEnvironment.UnhandledExceptionRaiser += (s, e) => { e.Handled = true; };

いずれのコードもMainActivityのOnCreateの中に書きます。

13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?