在Ruby中,異常是通過begin
、rescue
和end
關(guān)鍵字來捕獲和處理的??梢允褂?code>begin塊來嘗試執(zhí)行可能會引發(fā)異常的代碼,然后使用rescue
塊來捕獲并處理異常。以下是一個簡單的例子:
begin
# 可能會引發(fā)異常的代碼
1 / 0
rescue ZeroDivisionError => e
# 捕獲ZeroDivisionError異常,并輸出錯誤信息
puts "Error occurred: #{e.message}"
end
在上面的例子中,我們嘗試對1進行除以0的操作,這會引發(fā)ZeroDivisionError
異常。然后在rescue
塊中捕獲這個異常,并輸出錯誤信息。
除了指定異常類型外,也可以使用rescue
關(guān)鍵字來捕獲任何類型的異常:
begin
# 可能會引發(fā)異常的代碼
1 / 0
rescue => e
# 捕獲任何類型的異常,并輸出錯誤信息
puts "Error occurred: #{e.message}"
end
除了rescue
塊外,還可以使用ensure
塊來執(zhí)行清理操作,無論是否發(fā)生異常都會執(zhí)行:
begin
# 可能會引發(fā)異常的代碼
1 / 0
rescue ZeroDivisionError => e
# 捕獲ZeroDivisionError異常,并輸出錯誤信息
puts "Error occurred: #{e.message}"
ensure
# 無論是否發(fā)生異常都會執(zhí)行的清理操作
puts "Cleanup code here"
end
通過使用begin
、rescue
和ensure
關(guān)鍵字,可以有效地捕獲和處理異常,從而提高程序的穩(wěn)定性和可靠性。