Ruby 錯(cuò)誤處理主要使用 begin
、rescue
、ensure
和 raise
語(yǔ)句
begin
:用于開(kāi)始一個(gè)可能引發(fā)異常的代碼塊。rescue
:用于捕獲并處理特定類(lèi)型的異常??梢灾付ǘ鄠€(gè)異常類(lèi)型,按順序捕獲。ensure
:用于指定在任何情況下都會(huì)執(zhí)行的代碼塊,通常用于資源清理,如關(guān)閉文件、釋放內(nèi)存等。raise
:用于手動(dòng)引發(fā)異常??梢砸l(fā)內(nèi)置異?;蜃远x異常。以下是一個(gè)簡(jiǎn)單的 Ruby 錯(cuò)誤處理示例:
begin
# 可能引發(fā)異常的代碼
result = 10 / 0
rescue ZeroDivisionError => e
# 處理 ZeroDivisionError 異常
puts "發(fā)生了除以零的錯(cuò)誤:#{e.message}"
ensure
# 無(wú)論是否發(fā)生異常都會(huì)執(zhí)行的代碼
puts "錯(cuò)誤處理示例結(jié)束"
end
在這個(gè)示例中,我們嘗試執(zhí)行一個(gè)除以零的操作,這會(huì)引發(fā) ZeroDivisionError
異常。我們使用 rescue
捕獲該異常并處理它,然后使用 ensure
確保在任何情況下都會(huì)執(zhí)行某些操作。