catch も finally も無い try
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
try {
System.out.println("x");
}
}
}
- A
xと出力される - B 何も出力されない
- C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: try だけで catch も finally もないので、コンパイルエラーです。実行まで進まないので、何も出力されません。
- B: 実行まで進まないので、何も出力されません。
- C: コンパイルの時点でエラーになるので、実行時の例外にはなりません。
- D: try には catch か finally (または両方) が必要です。try-with-resources 以外で try だけ書くとコンパイルエラーになります。
ポイント
- try ブロックには catch か finally の少なくとも一方が必要です (try-with-resources は除く)。