Javaで到達不能ステートメント例外の原因を確認する

到達不能なステートメントの例外:

今日コードを書いている途中で、コードの行が赤くなり、到達不能なステートメント例外が表示されたことに気付きましたが、コード自体には何も問題はありませんでした。データをクエリしたところ、実際にはそれが行のエラーの原因であることがわかりました。のコードは実行できませんでした。この例外には 2 つの理由があります。

原因一:

Java コンパイラは、到達不能なステートメントをランタイム エラーとしてマークします。到達不能なステートメントとは、コンパイラがそのステートメントを決して実行しないと決定したことを意味します。
到達不能文は以下の場合に出現します。
(1) reutrn文の後に文を記述します。
(2) throw文の後に文を記述します。
(3) Break文、Continue文の後に文を定義します。
(4) "\u10100" // 有効です。'\u1010' および文字列 "0" と同等です。
(5) シフト演算子は、long int char short byte に使用できます。
(6) クラスのアクセス制御文字は public にすることも、何も追加しないこともできます。
(7) goto は予約語ですが、キーワードではありません。それなら何もない。
(8) スーパークラスの型をサブクラスのオブジェクトに強制的に代入した場合、コンパイル時は例外は発生しませんが、実行時は例外が発生します。

理由 2:

到達不能ステートメントは、このステートメントの前に return 操作があるか、他の操作により条件に関係なくこのセンテンスの実行が妨げられていることが原因で発生します。
最も重要なことは、前のステートメントが返されるかどうかを確認し、構文エラーがない場合でも、自分の過失によって引き起こされた条件がこのステートメントの前に返されるかどうかを確認することです。

私の過失により、if または for 条件文の後に何度か; を追加したため、次の return 文はそれ以降の文を実行せず、図に示すように 1; を返すことになります。
コードを書く
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/mcband/article/details/128526545