这样做有什么好处吗:
ApiTokenExpired = Class.new(StandardError)
...
raise ApiTokenExpired if response.errorCode == 429
在这个更懒惰的选择上:
raise 'api token expired' if response.errorCode == 429
考虑到这种错误检测在代码中只发生一次?
最佳答案
如果您必须在调用堆栈中的某处以特定方式处理错误,则自定义错误(如 ApiTokenExpired
)有一个重要优势。
begin
# ...
rescue ApiTokenExpired => error
# handle the specific error
rescue => error
# default error handling
end
IMO 创建自定义错误的决定并不取决于项目的规模或 future 的维护。
由于自定义错误类会导致额外的工作量,因此默认情况下我不使用它。当需要特殊的错误处理时,应引入错误类。
关于ruby - 引发异常 : string vs custom class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34684646/