Elixir 异常处理与类型规范详解
1. Elixir 异常处理
在 Elixir 中,异常处理是保障程序健壮性的重要手段。我们可以自定义异常模块,例如定义一个 KinectProtocolError 异常模块:
defmodule KinectProtocolError do
defexception message: "Kinect protocol error",
can_retry: false
def full_message(me) do
"Kinect failed: #{me.message}, retriable: #{me.can_retry}"
end
end
用户可以使用 try...rescue 语句来捕获并处理这个异常:
try do
talk_to_kinect
rescue
error in [KinectProtocolError] ->
IO.puts KinectProtocolError.full_message(error)
if error.can_retry, do: schedule_retry
end
当异常被抛出时,代码会捕获并处理它,可能还会进行重试。例如:
Kinect failed: usb unpl
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



