2017-12-27 13 views

答えて

0

catch(try/catchブロック内に置かなければならない)例外をスローするJavaメソッドでは、コードがコンパイルされない限りコンパイルされないため、赤い行/コンパイルエラーが発生します。

これは、IOのようにキャッチされなければならない例外であるチェック例外と呼ばれます。

チェックされていないその他の例外や実行時例外は、通常はtry/catchによって処理されるべきではありませんが、それらを守るか修正する必要があります。インスタンスはnullできる場合例えば

は、代わりにNullPointerExceptionを引くのは、nullをチェックする必要があります。

+0

たとえば、 "SharedPreferences.getInt(String key、int defValue)"としましょう。この名前がintではないプリファレンスがある場合、ClassCastExceptionをスローします。 try/catchブロック内に置かないと、赤い線/コンパイルエラーが表示されません(Android Studioではコンパイルエラーとみなされません)。私はtry/catchを使用したいと思います。なぜなら、 "catch"では、ユーザーからのエラーの可能性のあるログ(テキストファイル)を作成したいからです。それで、例外を投げる可能性のあるコード内のすべてのメソッドを強調表示するようにAndroid Studio 3.0.1に指示する方法はありますか? – Liviu

+0

ClassCastExceptionは、 "catch"ではなく修正する必要のある例外です。特定の型を優先するときは、同じ型として取得することを確認してください。そのような例外から回復することはできないため、キャストできなかった値の代わりにどのような値を使用するのかは正しくありません。実行中のクラッシュを使用してこれらのケースをキャッチし、開発中に修正してください – elmorabea

+0

ありがとうございます。あなたはそれについて正しいです。それが良い習慣です。とにかく、例外を投げる可能性があるコード内のすべてのメソッドを強調表示するようにAndroid Studio 3.0.1に指示することは可能ですか?それは無回答です。 :) – Liviu

関連する問題