プロを目指す人のためのRuby入門 その18
第9章 例外処理を理解する
また前回に引き続き例外処理について学びます。
例外処理のベストプラクティス
すべての例外を rescue するのではなく、必要な処理だけを rescue します。問題が発生したら異常終了させる方が良いです。例外が発生したら、原因を調査できるようにエラーメッセージやバックトレースなどをログに出力します。
例外処理の対象と対象クラスを極力絞り込み、補足すべき例外と異常終了すべき例外を分けることが大事です。
例外の発生が予測できる場合は、例外処理ではなく条件分岐を使って対処します。また、想定外のパターンには例外処理を記述します。
正規表現チェッカー
正規表現のパターンにマッチする文字列を表示するプログラムです。正しくないパターンの場合、再入力を求められます。
print 'Text?: ' text = gets.chomp # 例外処理を組み込み、パターンが正しくないとき、再入力できるようにする begin print 'Pattern: ' pattern = gets.chomp regexp = Regexp.new(pattern) rescue RegexpError => e puts "Invalid pattern: #{e.message}" retry end matches = text.scan(regexp) if matches.size > 0 puts "Matched: #{matches.join(', ')}" else puts "Nothing matched." end
ensure
例外の発生に関わらず、必ず実行される処理を記述できます。
begin puts 'Start' 1 / 0 ensure puts 'End' end
本
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る