103 「例外修羅道」 Step06 問題

問題

あなたは、ファイルや外部リソースを扱うような処理を想定したメソッドを作成しようとしています。
この処理では例外が発生する可能性があるため、メソッド内で try-catch を使わず、例外を呼び出し元に投げる(throws)形式で設計してください。

次の仕様に従って実装してください:

  • メソッド riskyMethod() は強制的に例外を発生させる(throw new Exception("危険な処理です");
  • 呼び出し元の main メソッドで try-catch を使って、例外を受け取り処理する
  • 例外が発生したら "エラーを受け取りました: (例外メッセージ)" を出力する

要件

  • riskyMethod メソッドは throws Exception を宣言すること
  • 呼び出し元で try-catch により例外を処理すること
  • System.out.println で例外メッセージを出力すること
  • throwthrows の違いを意識すること

テストコード(Main.java)

public class Main {
  public static void main(String[] args) {
    try {
      ExceptionUtil.riskyMethod();
    } catch (Exception e) {
      System.out.println("エラーを受け取りました: " + e.getMessage());
    }
  }
}

ヒント

  • throw → 例外を発生させる
  • throws → 「このメソッドは例外を投げるかもしれません」と宣言する
  • Exception という親クラスで宣言すれば、あらゆる例外をカバーできる

解答例

103 ステップアップ問題 「例外修羅道」