ruby - 引发异常 : string vs custom class

标签 ruby exception

这样做有什么好处吗:

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/

相关文章:

java - isInstance 中的 ClassNotFoundException

ruby - 扫描方法没有按预期工作

mysql - Rails belongs_to 和 has_many 没有创建主外键关系

java - 如何处理独立 Java 应用程序中的 Hibernate 异常

java - 为什么我收到错误消息 "unreported exception Java.io in a java code when trying to read from a text file"?

java - 修改控制 C 命令信号以允许输入

ruby - 使用 block 创建哈希 (Ruby)

javascript - 如何从 JSON 数组中获取集合

Ruby - 寻找子数组之间的最大差异

c# - 使用 ViewBag 时出现 RuntimeBinderException