当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Exception类用法及代码示例


本文简要介绍ruby语言中 Exception类 的用法。

Exception 类及其子类用于在begin ... end 块中的 Kernel#raise rescue 语句之间进行通信。

Exception 对象携带有关异常的信息:

  • 它的类型(异常的类)。

  • 可选的说明性消息。

  • 可选的回溯信息。

Exception 的一些内置子类具有其他方法:例如, NameError#name

默认值

两个 Ruby 语句具有默认异常类:

全局变量

当引发异常但尚未处理时(在 rescueensureat_exitEND 块中),将设置两个全局变量:

  • $! 包含当前异常。

  • $@ 包含它的回溯。

自定义例外

为了提供附加或替代信息,程序可以创建从内置异常类派生的自定义异常类。

一个好的做法是让库创建单个 “generic” 异常类(通常是 StandardError RuntimeError 的子类),并让其其他异常类派生自该类。这允许用户挽救通用异常,从而捕获该库可能引发的所有异常,即使该库的未来版本添加了新的异常子类。

例如:

class MyLibrary
  class Error < ::StandardError
  end

  class WidgetError < Error
  end

  class FrobError < Error
  end

end

要同时处理 MyLibrary::WidgetError 和 MyLibrary::FrobError,库用户可以挽救 MyLibrary::Error。

内置 Exception

Exception 的内置子类是:

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Exception类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。