Javaでthrowステートメントの後にコードを書ける?コンパイルエラーになる理由を解説
いいえ、throwステートメントの後にコードを記述することはできません。そのようなコードを書くと、コンパイル時エラー「到達不可能なステートメント(Unreachable Statement)」が発生します。
Javaにおけるthrowキーワードとは
- throwキーワードは、例外を手動でスロー(送出)するために使用されます。
- ユーザー定義の論理エラー条件に基づいて処理の実行を中断したい場合に、このthrowキーワードを使って例外をスローします。
- スローされた例外は、try-catchブロックを使って適切に処理(キャッチ)する必要があります。
throwキーワードを使用する際のルール
- throwキーワードの後には、必ずThrowable型のオブジェクトを続けなければなりません。
- throwキーワードは、メソッドのロジック内でのみ使用できます。
- throwは転送ステートメントであるため、その後にステートメントを配置することはできません。配置するとコンパイル時エラー「到達不可能なコード(Unreachable Code)」になります。
- ユーザー定義例外と組み込み(事前定義)例外のどちらも、throwキーワードでスローすることが可能です。
コード例
public class ThrowKeywordDemo {
public static void main(String[] args) {
try {
throw new ArithmeticException();
System.out.println("In try block"); // コンパイル時エラー:到達不可能なステートメント
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
}
上記のコードは実行されません。tryブロック内のthrowステートメントの後ろにステートメントが存在しているため、コンパイル時エラーが発生するからです。つまり、Javaではthrowステートメントの後にいかなるステートメントも配置することはできません。
出力結果
unreachable statement
System.out.println("In try block");
-
Javaの列挙型(enum)は任意のクラスを拡張できる?継承の仕組みを解説
Javaの列挙型(enum)とは列挙型(enum)は、Javaにおいて定数の集合を格納するためのデータ型です。1週間の曜日や1年の月名など、固定された値のグループを扱う際に活用されます。列挙型を定義するには、enumキーワードの後に列挙型の名前を続けて記述します。enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }配列と同様に、列挙型内の要素(定数)には0から始まる番号が自動的に割り当てられます。上記の例では、各曜日が以下の図のように番号で識別されます。列挙型はクラスとよく似た構造を持ち
-
【Java】JSONオブジェクトをファイルに書き込む方法(json-simpleライブラリの使い方)
JSON(JavaScript Object Notation)は、現在もっとも広く使われているデータ交換フォーマットのひとつです。軽量であることと、特定のプログラミング言語に依存しないことが大きな特徴で、異なるシステム間でのデータやり取りに最適です。 JavaでJSONファイルを読み書きするには、json-simple ライブラリが便利です。json-simpleは軽量なJSON処理ライブラリで、JSONテキストのエンコード(書き込み)とデコード(読み込み)の両方に対応しており、JSON仕様(RFC4627)に完全準拠しています。 ライブラリの準備 json-simpleを使用するには、まず