はじめに
例外処理はJavaプログラミングにおいて重要な概念です。
例外処理とはプログラムの実行中に発生したエラーを処理するための仕組みです
この記事では、Javaの例外処理の基本的な構文と具体的な使用例を解説します。
例外処理の基本的な使い方
Javaでは、例外処理を行うためにtry-catch構文を使用します。
以下は基本的な構文の例です。
import java.util.InputMismatchException;
try {
// // エラーが発生する可能性のあるコード
} catch (例外クラス 変数名) {
// 例外クラス名1に対する処理
} catch (例外クラス2 変数名) {
// // 例外クラス名2に対する処理
} finally {
// 最終的に実行したい処理があれば記述、省略可
}
計算エラーの場合(ArithmeticException)
public class Example {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("結果: " + result);
} catch (ArithmeticException e) {
System.out.println("エラーが発生しました: " + e.getMessage());
}
}
public static int divide(int num1, int num2) {
return num1 / num2;
}
}
この例では、divideメソッド内で0で割り算を行おうとしています。
しかし、0で割ることはできないため、ArithmeticException(アリスメティックエクセプション)がスローされます。
try-catchブロックを使用して、例外が発生した場合に備えてエラー処理を行っています。
エラーが発生しました: / by zero
ファイル読み込みエラー
try {
File file = new File("sample.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (FileNotFoundException e) {
System.out.println("ファイルが見つかりません: " + e.getMessage());
} catch (IOException e) {
System.out.println("入出力エラーが発生しました: " + e.getMessage());
}
データベース接続エラー
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
while (resultSet.next()) {
String username = resultSet.getString("username");
System.out.println("ユーザー名: " + username);
}
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
System.out.println("データベースエラーが発生しました: " + e.getMessage());
}
ユーザーからの入力エラー
try {
Scanner scanner = new Scanner(System.in);
System.out.print("整数値を入力してください: ");
int num = scanner.nextInt();
System.out.println("入力値: " + num);
} catch (InputMismatchException e) {
System.out.println("入力エラーが発生しました: " + e.getMessage());
}
エラー内容を呼び出し元に送信する(throws)
public class Example {
public static void main(String[] args) {
try {
calculateDivision(10, 0);
} catch (ArithmeticException e) {
System.out.println("エラーが発生しました: " + e.getMessage());
}
}
public static int calculateDivision(int num1, int num2) throws ArithmeticException {
if (num2 == 0) {
throw new ArithmeticException("0で割ることはできません");
}
return num1 / num2;
}
}
この例では、calculateDivisionメソッドが2つの整数を受け取り、もしnum2が0である場合にはArithmeticExceptionをスローしています。mainメソッドでは、calculateDivisionメソッドを呼び出していますが、0で割り算を試みて例外が発生します。そのため、try-catchブロックでArithmeticExceptionをキャッチし、エラーメッセージを出力しています。
throwsキーワードは、メソッド宣言で使用され、そのメソッドが特定の例外をスローする可能性があることを示します。この例では、calculateDivisionメソッドがArithmeticExceptionをスローする可能性があるため、throws ArithmeticExceptionと宣言されています。
まとめ
例外処理は、プログラム実行中に発生する予期しない状況やエラーに対処するための仕組みです。
try-catchブロックを使用して例外をキャッチし、適切な処理を行うことができます。
例外処理を適切に利用することで、予期せぬエラーに対処し、プログラムの安全性と信頼性を高めることができます。