當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。