Rails之间的差异引发StandardError.new'和'raise StandardError'

use*_*793 7 ruby

为了处理Rails异常,我看到人们"提出SomeException.new"或"提出SomeException",有什么区别?

如果我有课,请说

 class UnableToCreateShipments < StandardError; end
Run Code Online (Sandbox Code Playgroud)

我可以两个都做吗?

raise UnableToCreateShipments
raise UnableToCreateShipments.new
Run Code Online (Sandbox Code Playgroud)

或者留言

raise UnableToCreateShipments, 'my error message'
raise UnableToCreateShipments.new('my error message')
Run Code Online (Sandbox Code Playgroud)

And*_*imm 11

你可以做到这两点,但是Boris Batsov的Ruby Style Guide和RuboCop建议只传递异常类的简单版本,而不是创建它的实例.