/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 103 「例外修羅道」 Step04 問題 | Javaドリル

103 「例外修羅道」 Step04 問題

eyecatch103-step04 103「例外修羅道」

問題

あなたは、配列の要素を取り出して割り算をするメソッドを作成しようとしています。
この処理では次の2つの例外が発生する可能性があります:

  • 配列のインデックスが範囲外 → ArrayIndexOutOfBoundsException
  • ゼロ除算 → ArithmeticException

この2つの例外は、どちらも RuntimeException → Exception を継承しています。
このステップでは、Exception クラスでまとめて例外を捕捉し、
例外が発生しました: (例外メッセージ) という形式で出力してください。


要件

  • catch (Exception e) で2種類の例外をまとめて捕まえること
  • 発生した例外のメッセージを出力すること(e.getMessage() を使う)
  • 正常な場合は、要素と計算結果を出力すること

出力形式

  • 正常時: 選ばれた値: 20 計算結果: 4
  • 例外発生時: 例外が発生しました: / by zero

テストコード(Main.java)

public class Main {
  public static void main(String[] args) {
    int[] numbers = {10, 20, 30};
    ExceptionUtil.safeProcess(numbers, 1, 5);   // 正常
    ExceptionUtil.safeProcess(numbers, 3, 2);   // 配列外アクセス
    ExceptionUtil.safeProcess(numbers, 0, 0);   // ゼロ除算
  }
}

ヒント

  • catch (Exception e) にすることで、すべての例外を一括で処理できる
  • e.getMessage() を使えば、例外が持っているメッセージを取得できる
  • 実際の開発現場でも、「例外の種類を気にせずログだけ残す」という処理で使われることがある

→ 解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

コメント

タイトルとURLをコピーしました