Elixir語言中 Kernel.defexception
相關用法介紹如下。
用法:
defexception(fields)
(宏)
定義異常。
異常是由實現
行為的模塊支持的結構。 Exception
行為需要實現兩個函數:Exception
-
exception/1
raise/2
-
message/1
由於異常是結構體,因此
支持的 API 在 defstruct/1
中也可用。defexception/1
引發異常
引發異常的最常見方法是通過
:raise/2
defmodule MyAppError do
defexception [:message]
end
value = [:hello]
raise MyAppError,
message: "did not get what was expected, got: #{inspect(value)}"
在許多情況下,將期望值傳遞給
並在 raise/2
回調中生成消息會更方便:Exception.exception/1
defmodule MyAppError do
defexception [:message]
@impl true
def exception(value) do
msg = "did not get what was expected, got: #{inspect(value)}"
%MyAppError{message: msg}
end
end
raise MyAppError, value
上麵的示例顯示了自定義異常消息的首選策略。
相關用法
- Elixir Kernel.defmodule用法及代碼示例
- Elixir Kernel.defmacro用法及代碼示例
- Elixir Kernel.defdelegate用法及代碼示例
- Elixir Kernel.defguard用法及代碼示例
- Elixir Kernel.defoverridable用法及代碼示例
- Elixir Kernel.defstruct用法及代碼示例
- Elixir Kernel.defp用法及代碼示例
- Elixir Kernel.def用法及代碼示例
- Elixir Kernel.destructure用法及代碼示例
- Elixir Kernel.div用法及代碼示例
- Elixir Kernel.SpecialForms.case用法及代碼示例
- Elixir Kernel.round用法及代碼示例
- Elixir Kernel.left / right用法及代碼示例
- Elixir Kernel.put_in用法及代碼示例
- Elixir Kernel.tl用法及代碼示例
- Elixir Kernel.left - right用法及代碼示例
- Elixir Kernel.tuple_size用法及代碼示例
- Elixir Kernel.to_charlist用法及代碼示例
- Elixir Kernel.base ** exponent用法及代碼示例
- Elixir Kernel.left !== right用法及代碼示例
- Elixir Kernel.if用法及代碼示例
- Elixir Kernel.spawn_monitor用法及代碼示例
- Elixir Kernel.to_string用法及代碼示例
- Elixir Kernel.length用法及代碼示例
- Elixir Kernel.first..last用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Kernel.defexception(fields)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。