あなたonCreate()
方法で、一般的な例外をキャッチすることができます:キャッチ
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
try {
// do whatever you need
} catch (Exception e) {
e.printStackTrace();
}
}
例外は、多くのゴールで使用することができます。興味深いのは、いくつかの問題を修正するために特定の予想例外をキャッチすることです(たとえば、ジェネリック値を変数に設定するなど、エラーが発生した後はnullを設定するなど)。
ただし、エラーが発生したり、最悪の場合アプリケーションがクラッシュすることは避けてください。どのような種類のソフトウェアを開発しているかによって、クラッシュは(Androidアプリのような)小さな問題(飛行機のソフトウェアや発電所のソフトウェアのような非常に大きなもの)を表している可能性があります。
2種類の例外を特定できます。
最初のタイプは、特定の問題に固有の例外です。メソッドシグネチャとして宣言する必要があるため、これらの例外とその相対的な問題を管理することを推奨または義務づけられています。これらの例外は、解析エラーや入出力エラーなど、特定のコード実行中に発生する可能性のあるエラーを表します。このタイプの問題では、特定の例外があり、それらを捕捉して容易に管理することができます(たとえば、エラーの後でデフォルト値を持つ変数を初期化すると言います)。
これらの例外の2番目のタイプは、代わりにプログラムの実行中に発生する一般的な問題を表しています。それらは大きくて一般的な集合であり、一般的にそれらの発生確率は低い。このため、あなたはそれらを管理することを忘れてはなりません。このタイプの主な例は、一般的なExceptionクラスです。
Gabe Sechanが提案したように、例外をキャッチすることはバグを解決する正しい方法ではありません。
main()
で一般的な例外をキャッチすることは、たとえば、他に何も利用可能でない場合、人間が読むことができるデフォルトのエラーを表示するための方法です。 また、クラッシュの可能性を減らすために現在の操作の失敗を維持する方法かもしれません。
今、Androidでは直接main()
メソッドで動作することはできません。 onCreate()
メソッドが実行されて終了するので、ここで一般的な例外をキャッチするのはあまり意味がありません。明らかに、それはあなたのonCreate()
メソッドで何をしているのか、エラーが発生した場合に何をしたいのかによっても異なります。あなたはいくつかの奇妙なことをすることができます(あなたはonCreate()
メソッドで行うべきことが非常に定義されています)。エラーを表示するだけの大きな問題を管理する必要があるかもしれません。それぞれのブロックで同じことをするための例外があります。catch
ブロック。
実行中に発生したすべてのエラーについてメッセージが表示され、Activity
がActivity
になりました。これは正しいアプローチです。
あなたが達成したいものを代わりにする場合は、アプリの実行のすべての中に生成されたエラーのすべてを傍受するために、良い方法は、Java main()
メソッドにジェネリックExcepetion
をキャッチするために同様に作用UncaughtExceptionHandler
、可能性があります。このレベルでは、興味深いアプローチがhereと記載されています。
例外について詳しくは、thisとthisを参照してください。
エラーとは何ですか?あなたのコードを投稿してください –
SharedPreferencesのエラーは、キーの存在またはヌルチェックによって確認できます。ヌルチェックはすべてのオブジェクトにも適用されます –