我不太了解Rails如何包含(或不包含)app目录中的某些文件。
例如,我创建了一个新的目录app / exceptions来创建我自己的异常。现在,从帮助文件中,我想提出一个异常。
我想在这个帮手中加入一些东西吗?
助手:助手/ communications_helper.rb
//should I include something or it's suppose to be autoloaded?
module CommunicationsHelper
begin.
.
.
.
raise ParamsException, "My exception is lauch!"
rescue StandardError => e
...
end
end
例外:例外/ params_exception.rb
class ParamsException < StandardError
def initialize(object, operation)
puts "Dans paramsException"
end
end
输出中我的加注没有具体的内容......
谢谢!
编辑: 多亏了所有,你的两个答案以不同的方式有所帮助。 我没有像你说的那样提高异常,但我还要忘记更新我的config.rb。 所以我现在:
rescue StandardError => e
raise ParamsError.new("truc", "truc")
其他问题,你知道我在哪里能加注吗? 因为我已经陷入困境,所以我很少失去......
答案 0 :(得分:4)
如果您没有看到raise
的输出,请确保您没有意外地解决错误,因为您的错误是StandardError
的子类:
begin
raise ParamsException, "My exception is lauch!"
rescue StandardError => e # This also rescues ParamsException
end
作为旁注,在Ruby中,通常的做法是将自定义错误以Error
而不是Exception
结尾。与其他一些编程语言不同,以Exception
结尾的类意味着系统级错误。
答案 1 :(得分:3)
首先,我认为您错误地提出了异常。
在自定义异常类中,initialize方法接受参数。因此你应该用:
来提高它raise CustomError.new(arg1, arg2, etc.)
最后,如果CustomError是StandardError的子级,请不要从StandardError中解救;否则你的手册'加注'将被拯救。