在Elixir中,可以使用try
、rescue
和catch
來處理錯誤和異常。
try
塊用于捕獲可能會拋出異常的代碼塊,如果其中的代碼拋出了異常,控制流將轉移到rescue
塊或catch
塊。
rescue
塊用于捕獲特定類型的異常,例如RuntimeError
、ArgumentError
等。示例:
try do
raise "An error occurred"
rescue
RuntimeError -> IO.puts "Runtime error occurred"
end
catch
塊用于捕獲非異常類型的錯誤,例如錯誤的函數調用或模式不匹配。示例:
try do
{:ok, result} = {:error, "Something went wrong"}
catch
error -> IO.puts "Error occurred: #{inspect error}"
end
除了try
、rescue
和catch
之外,Elixir還提供了raise
函數來手動拋出異常,以及throw
和catch
來處理非異常類型的錯誤。通過組合使用這些功能,可以有效地處理錯誤和異常,保證程序的穩定性和可靠性。