2007年 03月 17日

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