Mathematica中是否有一个设置(我希望它是一个环境变量),它会在发生调试错误时使内核退出?通常,我会收到调试错误,笔记本会继续评估错误的数据,迫使我重新启动内核。

最佳答案

你写了:



您可以通过定义 $AssertFunction 来做到这一点,如下所示:

$AssertFunction := Quit[] & ;

现在,当断言失败时,内核退出:
<< ExampleData`FunctionWithAssert`
Compute[ 1.0]

(*=> kernel quits*)

另外,您可以通过以下方式使用Interrupt:
$AssertFunction := Interrupt[] & ;

它允许您中止评估或输入子 session (与Arnoud答案中的Dialog[]相同)。

您还可以扩展此方法以打印失败的断言:
$AssertFunction := (Print[HoldForm @@ #]; Interrupt[]) &;

10-08 05:02