当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Kernel.exit用法及代码示例


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-lang.org大神的英文原创作品 Kernel.exit(reason)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。