Elixir语言中 Kernel.exit
相关用法介绍如下。
用法:
exit(reason)
@spec exit(term()) :: no_return()
以给定的原因停止调用进程的执行。
由于评估此函数会导致进程终止,因此它没有返回值。
由编译器内联。
例子
当一个进程到达终点时,默认情况下它会以 :normal
的原因退出。如果要终止进程但不发出任何失败信号,也可以显式调用
:exit/1
exit(:normal)
如果出现问题,您还可以使用
以不同的原因:exit/1
exit(:seems_bad)
如果退出原因不是 :normal
,则链接到退出进程的所有进程都将崩溃(除非它们正在捕获退出)。
OTP 退出
OTP 使用退出来确定进程是否异常退出。以下出口被视为"normal":
exit(:normal)
exit(:shutdown)
exit({:shutdown, term})
以任何其他原因退出被视为异常并被视为崩溃。这意味着默认的主管行为启动,发出错误报告等等。
许多不同的地方都依赖这种行为。例如,
在退出测试进程时使用ExUnit
exit(:shutdown)
来表示链接进程、监督树等也礼貌地关闭。
CLI 退出
在上述退出信号的基础上,如果命令行启动的进程因上述三个原因中的任何一个退出,则认为其退出是正常的,操作系统进程将以状态 0 退出。
但是,可以通过调用来自定义操作系统退出信号:
exit({:shutdown, integer})
这将导致操作系统进程以integer
给出的状态退出,同时通知所有链接的 Erlang 进程礼貌地关闭。
任何其他退出原因都将导致操作系统进程以状态1
退出并且链接的 Erlang 进程崩溃。
相关用法
- Elixir Kernel.elem用法及代码示例
- 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.defexception用法及代码示例
- 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 Kernel.SpecialForms.%{}用法及代码示例
- Elixir Kernel.SpecialForms.for用法及代码示例
- Elixir Kernel.then用法及代码示例
- Elixir Kernel.spawn用法及代码示例
- Elixir Kernel.defmodule用法及代码示例
- Elixir Kernel.SpecialForms.quote用法及代码示例
- Elixir Kernel.left > right用法及代码示例
- Elixir Kernel.binding用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Kernel.exit(reason)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。