在Ruby中處理異常情況通常使用begin
、rescue
、else
和ensure
這四個(gè)關(guān)鍵字。下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用這些關(guān)鍵字處理異常:
begin
# 這里放置可能引發(fā)異常的代碼
result = risky_operation
rescue SomeExceptionType => e
# 當(dāng)異常類型與SomeExceptionType匹配時(shí),執(zhí)行此處的代碼
puts "捕獲到異常:#{e.message}"
rescue ExceptionType => e
# 當(dāng)捕獲到其他類型的異常時(shí),執(zhí)行此處的代碼
puts "捕獲到未知異常:#{e.message}"
else
# 如果沒(méi)有發(fā)生異常,執(zhí)行此處的代碼
puts "操作成功,結(jié)果為:#{result}"
ensure
# 無(wú)論是否發(fā)生異常,都會(huì)執(zhí)行此處的代碼
puts "異常處理結(jié)束"
end
在這個(gè)示例中,我們首先使用begin
關(guān)鍵字開(kāi)始一個(gè)可能引發(fā)異常的代碼塊。接著,我們使用rescue
關(guān)鍵字捕獲特定類型的異常(如SomeExceptionType
)和所有其他類型的異常(使用Exception
作為基類)。如果沒(méi)有發(fā)生異常,else
子句將被執(zhí)行。無(wú)論是否發(fā)生異常,ensure
子句都會(huì)被執(zhí)行。
你可以根據(jù)需要調(diào)整異常類型和處理代碼,以便更好地處理特定的異常情況。