在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来处理非异常类型的错误。通过组合使用这些功能,可以有效地处理错误和异常,保证程序的稳定性和可靠性。