Ruby異常處理主要包括begin
、rescue
、ensure
和raise
四個(gè)關(guān)鍵字。以下是這些關(guān)鍵字在Ruby異常處理中的作用:
begin
:用于定義可能引發(fā)異常的代碼塊。rescue
:用于捕獲并處理特定異常,可以指定多個(gè)異常類型,按順序捕獲。如果沒(méi)有指定異常類型,將捕獲所有異常。ensure
:用于定義在所有情況下都會(huì)執(zhí)行的代碼塊,無(wú)論是否發(fā)生異常。raise
:用于手動(dòng)拋出異常,可以指定異常類型和異常信息。以下是一個(gè)簡(jiǎn)單的Ruby異常處理示例:
begin
# 可能引發(fā)異常的代碼
result = 10 / 0
rescue ZeroDivisionError => e
# 處理ZeroDivisionError異常
puts "發(fā)生了除以零的錯(cuò)誤:#{e}"
rescue => e
# 處理其他異常
puts "發(fā)生了未知錯(cuò)誤:#{e}"
ensure
# 無(wú)論是否發(fā)生異常都會(huì)執(zhí)行的代碼
puts "異常處理結(jié)束"
end
在這個(gè)示例中,我們嘗試執(zhí)行一個(gè)除以零的操作,這會(huì)引發(fā)ZeroDivisionError
異常。通過(guò)使用rescue
關(guān)鍵字,我們可以捕獲并處理這個(gè)異常。如果沒(méi)有指定異常類型,將捕獲所有異常。ensure
關(guān)鍵字確保在所有情況下都會(huì)執(zhí)行某些代碼。