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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。