例外処理 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