ローイングファンのプログラミング日記

ボート競技やプログラミングについて書きます

例外処理 rescue

目次


例外処理

例外とはコード内のエラー。
例外処理がないコードで例外が発生するとそこから先には進めない。
例外が発生したときの対処をほどこすのが例外処理。
リファレンスマニュアルは次のとおり。

Rubyリファレンスマニュアル
制御構造 例外処理
https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html

rescue節

rescueの書式は次のとおり。

begin
    例外が発生する可能性のある処理
rescue
    例外が発生した時の処理
end


コードを書く。

test.rb

require 'open-uri'

begin
    url = open("wrong_url","r:utf-8")
    puts url.read
    url.close
rescue
    puts "URLがみつかりませんでした。"
end


実行結果

URLがみつかりませんでした。


コードの説明。

  • open-uriライブラリをrequireで読み込む
  • beginとrescueの間にエラーが起きそうな処理を書く
    • コードが問題なく実行されるとターミナル/PowerShellにHTMLコードが表示される
    • openメソッドは引数のファイルやWebページが開けないとエラーになる
  • rescueとendの間にエラーが起きたときの処理を書く


実行結果ではrescue節の処理が実行されている。
例外処理がない場合はURLが開けない段階でエラーがでて実行停止になる。
例外処理を使うとエラーがおきてもその場で終了にならない。
リンク切れのときに役に立つ。

今回の動作確認環境

Ruby 2.4.3p205

macOS 10.13.4
ターミナル 2.8.2

Windows10 1709
Windows PowerShell 5.1