在异常中§
有关例程 die,请参阅主要文档 上下文
multi die()multi die(*)multi die(Exception )method die(Exception:)
抛出一个致命的Exception
。默认异常处理程序将列表的每个元素打印到 $*ERR
(STDERR)。
die "Important reason";
如果未带参数调用子例程形式,则检查 $!
变量 的值。如果将其设置为 .DEFINITE
值,则其值将用作要抛出的 Exception
(如果它是 Exception
类型),否则,它将用作 X::AdHoc
异常的有效负载。如果 $!
不是 .DEFINITE
,则将抛出有效负载为字符串 "Died"
的 X::AdHoc
。
die
默认情况下会打印发生该异常的行号
die "Dead";# OUTPUT: «(exit code 1) Dead# in block <unit> at /tmp/dead.raku line 1»
但是,该默认行为受 Exception
级别控制,因此可以通过使用 CATCH
捕获异常来将其更改为我们想要的任何内容。例如,这可用于抑制行号。
CATCH;die "Dead" # OUTPUT: «Dead»