Ruby のエラークラス
自分でクラス定義するときは、一緒にエラークラスも定義する。用途別にそこそこ細かくつくる。
class Foo
class FooError < StandardError; end
class FooUncoError < FooError; end
class FooTincoError < FooError; end
def initialize
...
end
...
endクラス名+Error は必ず定義する。あとからサブクラスを作るにしても、互換性の問題がでにくい。そういう風にするためにほかのエラークラスはそれのサブクラスにする。
ときどきめんどうくさがって全部 RuntimeError (raise "Error message" の場合 RuntimeError になる) になってるライブラリとかあると、(ry