●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

Rubyのbegin-rescue-end構文とは?エラーを安全に処理する基本構文

Rubyで例外処理を行う基本的な書き方が「begin-rescue-end構文」です。 これにより、プログラムの途中でエラーが発生しても、処理を止めずに対応できます。

基本構文

begin
  # エラーが発生するかもしれない処理
rescue
  # エラー発生時の処理
end

例:

begin
  result = 10 / 0
rescue
  puts "0で割ることはできません"
end

この例では、0で割ると ZeroDivisionError が発生しますが、rescue により安全に処理できます。

例外クラスの指定

begin
  File.open("missing.txt")
rescue Errno::ENOENT
  puts "ファイルが見つかりませんでした"
end

rescue に例外クラスを指定することで、特定のエラーだけに反応できます。

例外情報を取得する

begin
  1 / 0
rescue ZeroDivisionError => e
  puts "エラー内容:#{e.message}"
  puts "エラークラス:#{e.class}"
end

=> e を使えば、発生した例外オブジェクトにアクセスできます。

複数のrescue節

begin
  raise IOError, "IOの問題発生"
rescue ZeroDivisionError
  puts "ゼロで割った"
rescue IOError
  puts "IOエラーが発生"
rescue => e
  puts "その他のエラー:#{e.class}"
end

複数の例外クラスを rescue で分けて対応できます。 最後の rescue => e は、どの例外にも対応可能な「キャッチオール」として使われます。

ensure節と組み合わせる

begin
  puts "処理開始"
  raise "何かのエラー"
rescue
  puts "エラー処理中"
ensure
  puts "終了処理を実行"
end

ensure は、エラーの有無に関係なく必ず実行される部分です。 後始末やログ出力などに適しています。

rescue節の省略記法

value = Integer("abc") rescue 0
puts value  # → 0

簡単な処理には、rescue を後置して1行で書くこともできます。

まとめ

Rubyのbegin-rescue-end構文は、プログラム実行時のエラー(例外)に柔軟に対応する基本構文です。 rescue を使って特定のエラーに対応し、ensure で後始末も行えます。

エラー発生の可能性がある処理には、例外処理を組み合わせて安全で安定したコードを心がけましょう!