私は、Rubyのクラス間でどのようにエラーが伝播するのかを理解しようとしています。私はこれまでのところ、これを持っている:ランナーインサイドrubyのメッセージで特定のエラーから救助できますか?
$ ruby errors.rb
charging order soon
This is a runtime error
が、私は特定のメッセージをRuntimeError
から救うことができます:私はこれを実行すると
class User
def charge
puts "charging order soon"
raise RuntimeError.new("This is a runtime error")
rescue ArgumentError
puts "should never gets here"
end
end
class Runner
def run
begin
User.new.charge
rescue RuntimeError => e
puts e.message
end
end
end
Runner.new.run
、私は右のようであるこれを取得しますか?私のアプリケーションの周りに複数のRuntimeErrors
が置かれている場合、ランナーのレスキュー句がRuntimeErrorsの特定のメッセージに対してのみ呼び出される方法はありますか?
「StandardError」のサブクラスを作成し、それから継承した特定の例外タイプを持つことを提案する理由を説明できますか?私はなぜこれを行うのか分からない:https://ruby-doc.org/core-2.2.0/Exception.html – Jwan622