All exceptions should be children of `StandardError` so it can be rescued by standard `rescue => e`. There are only few special cases when it makes sense to define use `Exception` as a parent (testing lib, maybe a daemon lib, etc.).