{category}

Ruby - 例外の基本

rescue

レスキュー(例外処理

意味 例外の捕捉と処理


rescueとは?

rescueは、beginブロック内で発生した例外を捕捉し、それを処理するためのコードブロックを定義するキーワードです。特定の例外タイプを指定して、それに応じた処理を行うことができます。

rescueの具体的な使い方

特定の例外を捕捉する例

def divide(a, b)
  begin
    result = a / b
    puts "計算結果: #{result}"
  rescue ZeroDivisionError
    puts "ゼロで除算できません"
  end
end

divide(10, 2)
divide(5, 0)

👇出力結果

計算結果: 5
ゼロで除算できません

この例では、divide関数内で除算を行い、ゼロ除算が発生した場合にZeroDivisionError例外を捕捉します。正常な除算とゼロ除算の両方のケースを示しています。

複数の例外を捕捉する例

def process_file(filename)
  begin
    file = File.open(filename, 'r')
    content = file.read
    puts "ファイル内容: #{content}"
  rescue Errno::ENOENT
    puts "ファイルが見つかりません: #{filename}"
  rescue Errno::EACCES
    puts "ファイルにアクセスする権限がありません: #{filename}"
  ensure
    file.close if file
    puts "ファイル処理が完了しました"
  end
end

process_file('existing_file.txt')
process_file('non_existing_file.txt')

👇出力結果

ファイル内容: (ファイルの内容)
ファイル処理が完了しました
ファイルが見つかりません: non_existing_file.txt
ファイル処理が完了しました

この例では、ファイルの読み込み処理で発生する可能性のある複数の例外(ファイルが存在しない、アクセス権限がない)を個別に捕捉しています。また、ensureブロックを使用して、例外の有無に関わらずファイルを確実にクローズしています。

rescueに関するよくある質問

Q. rescueの基本的な使い方は?
A. rescueは、beginブロック内で発生した例外を捕捉するために使用します。基本的な構文は以下の通りです: begin # 例外が発生する可能性のあるコード rescue ExceptionType # 例外が発生した場合の処理 end 特定の例外タイプを指定しない場合は、すべての例外を捕捉します。
Q. 複数の例外を処理できますか?
A. はい、複数の例外を個別に処理できます。以下のように記述します: begin # コード rescue ExceptionType1 # 処理1 rescue ExceptionType2 # 処理2 end また、複数の例外を同じ方法で処理したい場合は、以下のように書けます: rescue ExceptionType1, ExceptionType2 => e # 共通の処理
Q. 捕捉した例外の情報を取得できる?
A. はい、捕捉した例外の情報を変数に代入して取得できます。以下のように記述します: begin # コード rescue ExceptionType => e puts e.message # 例外メッセージを表示 puts e.backtrace # バックトレースを表示 end これにより、例外の詳細情報にアクセスできます。

rescueが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのrescueやraise、begin、class CustomError < StandardError、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

raise

意図的に例外を発生させる

種類: 例外の捕捉と発生

begin

例外処理の開始

種類: 例外の基本

class CustomError < StandardError

独自の例外クラスを定義

種類: カスタム例外

yield

ブロックを呼び出す

種類: ブロックの基本

>>=

右シフト代入演算子

種類: ビット演算