在脚本编写中使用 Throw(我在程序中使用 Throw() 来停止程序特定部分的执行。 这在 JMP 13 中仍然有效,但有时我会看到一个带有 JMP 警报的新窗口。我似乎无法模拟这个问题 - 它发生在用户窗口中 - 程序看到问题,程序发送一个标题并执行 Throw()。在早期版本中,我只得到标题,现在我有时也会得到一个警报窗口。我认为 Throw() 只是停止执行。 我可以在 Throw("Hello") 中使用文本,在这种情况下,它将获得带有该文本的 JMP 警报 - 如果单独执行,我只会获得日志中的文本。我不确定什么时候会发生什么。有人可以帮忙吗。
回复:在脚本中使用 Throw(对于 Throw(
回复:在脚本中使用 Throw(关于 stop() 的另一件事。 它似乎只会停止包含它的显示框中的脚本。
dt = open("$SAMPLE_DATA\Big Class.jmp");
newwindow("x", <<MODAL></MODAL>
回复:在脚本中使用 Throw(谢谢 Craige - 正是我需要的 - Stop() 函数。但我无法获取 Sctipt 手册。
我希望您的示例中的“抛出”按钮会显示一个空警报,如下所示。这就是我在自己的程序中得到的 - 正如你所说,它是在交互式环境中 
回复:在脚本中使用 Throw(
Alert dialog triggered by JSL throw in Interactive modeAlert dialog triggered by JSL throw in Interactive mode交互模式下由 JSL 引发的警报对话框
当 JSL 从按钮脚本运行时,它以交互模式运行,并在 JMP 认为您应该知道发生了什么时生成警报对话框。 如果您通过提交来运行脚本,JSL 将以批处理模式运行,并且仅向日志发送警报。 我认为在你的情况下你可能想使用 stop() 而不是 throw("msg")。
当您提交此脚本时,它会以批处理模式运行并打开一个窗口。 当您单击窗口中的按钮时,按钮脚本会交互运行。
newwindow("x",
buttonbox("throw(err msg)",setscript(print(1);throw("this is an error message");print(2))),
buttonbox("throw",setscript(print(3);throw();print(4))),
buttonbox("stop",setscript(print(5);stop();print(6))),
)
对于每个按钮,由于脚本停止,因此仅在日志中打印第一个数字。