custom exceptions should derive from Exception, not Throwable
ninja reviewed by yukim