在Ruby中,錯誤處理主要可以分為兩大類:異常(Exception)和錯誤(Error)。
StandardError
類。以下是一些常見的異常類:SystemExit
:當exit
或exit!
方法被調用時拋出。Interrupt
:當用戶中斷程序(如按下Ctrl+C)時拋出。RuntimeError
:當程序中出現運行時錯誤時拋出,如除以零、數組越界等。SystemStackError
:當程序運行時的棧溢出時拋出。Errno
:當操作系統返回錯誤代碼時拋出,如文件不存在、權限不足等。這些錯誤通常可以通過檢查$!
全局變量獲取。NoMethodError
:當嘗試調用不存在的方法時拋出。ArgumentError
:當傳遞給方法的參數類型不正確時拋出。TypeError
:當操作的對象類型不正確時拋出。要處理異常,可以使用begin
、rescue
、ensure
和raise
關鍵字。例如:
begin
# 可能引發異常的代碼
rescue SystemExit => e
puts "Exiting with status #{e.status}"
rescue Interrupt => e
puts "Interrupted by user"
rescue StandardError => e
puts "StandardError: #{e.message}"
end
SystemExit
類。以下是一些常見的錯誤類:SystemExit
:當exit
或exit!
方法被調用時拋出。SignalException
:當接收到操作系統信號時拋出,如SIGINT
(Ctrl+C)、SIGTERM
等。SystemExit
:當程序正常退出時拋出。錯誤通常不需要手動處理,因為它們表示程序無法繼續運行。在大多數情況下,應該讓異常處理機制捕獲這些錯誤。