1.はじめに
こんにちは。株式会社ゼネットの明樂です。
今回は私がJava研修で苦戦したtry-catch-finally文と、意図的にエラーを発生させるthrow文について、お話しします。
Java初学者の方の力になれると嬉しいです。
2.try-catch-finally文
try-catch-finally文はエラーが発生しそうな処理をするときに使います。
ファイルが見つからないときや、計算中にゼロで割るエラーが発生するときなど、プログラムを書いていると予期せぬエラーが発生することもあります。
その際にtry-catch-finally文を使うことで、予期せぬエラーが発生した時に正しく処理をすることができます。
次のようにして使います。
try{
//ここにエラーが発生しそうなコードを書きます
} catch(Exception e) {
//エラーが発生した時の処理を書きます
} finally {
//エラーが発生してもしなくても実行したい処理を書きます
}
tryブロック内にはエラーが発生しそうなコードを書きます。
tryブロックでエラーが発生した時に、catchブロックの中に書かれた処理が実行されます。
catchブロックではエラーの種類に応じた処理が実行されます。エラーの種類は( )内のExceptionで指定します。
finallyブロックはtryブロックとcatchブロックが実行された後に必ず実行されます。そのため、このブロック内には必ず行いたい処理を書きます。
使用例
public class Main {
public static void main(String[] args) {
try {
int result = 10/0;
} catch (ArithmeticException e) {
System.out.println("0では割れません。");
} finally {
System.out.println("処理が終了しました。");
}
}
}
この場合は0で割ろうとしているためエラーが発生するのですが、catchブロックが実行され、エラーメッセージが出力されます。そして最後にfinallyブロックが実行されます。
3.意図的にエラーを発生 throw文
意図的にエラーを発生させたいとき、throwを使います。
次のようにして使います。
throw new Exception();
Exceptionには発生させたい例外の型を指定します。
使用例
public class Main {
public static void main(String[] args) {
try {
int price = -1000;
if(price <= 0) {
throw new IllegalArgumentException();
}
} catch (IllegalArgumentException e) {
System.out.println("価格は正の値でなければいけません。");
}
}
}
この場合はpriceが負の値であるときにIllegalArgumentExceptionを投げています。
4.おわりに
try-catch-finally文とthrow文についてお話しました。エラーが発生したときの対処方法は重要なので、理解の一助となれば嬉しいです。