Rubyと仲良くなりたい٩( 'ω' )و

Rubyと仲良くなりたい日々のこと

例外クラス StandardError

例外クラスのStandardErrorとそのサブクラスという階層のことをまとめました。

例外クラスについて

Rubyの例外処理において、例外クラスを指定しない場合StandardErrorとそのサブクラスが補足されます。
StandardErrorとそのサブクラスとは?

StandardError

StandardErrorとは、

通常のプログラムで発生する可能性の高い 例外クラスを束ねるためのクラスです。

引用元: class StandardError (Ruby 2.5.0)

そのサブクラス

サブクラスとは親子関係のあるクラスの子の方のことで、親のメソッドを継承しています。
こういった階層構造と考えるとわかりやすそうです。

Exception(全ての例外の祖先)  
 ∟StandardError
   ∟サブクラス達

で、StandardErrorのサブクラスは、つまるところ通常のプログラムで発生する可能性の高い 例外クラスです。
具体的にはこちらです。

ArgumentError
EOFError
EncodingError
FiberError
FloatDomainError
IOError
IndexError
KeyError
LocalJumpError
NameError
NoMethodError
RangeError
RegexpError
RuntimeError
StandardError
StopIteration
SystemCallError
ThreadError
TypeError
ZeroDivisionError

Ruby 2.5.0 リファレンスマニュアル > 組み込みライブラリ > 例外クラスが、構造と内容を確認するには最適です。
ただ、上記のように一覧だけを確認したい場合については、ancestorsを利用するのが便利です。上記のStandardErrorのサブクラス一覧を表示するにあたっては、こちらの記事を参照させていただきました。さらに祖先のExceptionクラスにも触れていてとても参考になりましたmm

randd.kwappa.net