在异常中§
有关例程 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»