Ale*_*kov 5 wolfram-mathematica
Mathematica具有CheckAbort允许捕获和处理用户生成和编程Abort的功能.但它不允许赶上通过这样的功能产生例如中断TimeConstrained和MemoryConstrained:
TimeConstrained[CheckAbort[Pause[100], Print["From CheckAbort"]], 1]
Run Code Online (Sandbox Code Playgroud)
(不打印"From CheckAbort").
有没有办法在Mathematica中捕获这样的中断?
编辑:我知道第三个参数,TimeConstrained并MemoryConstrained允许在中断的情况下评估一些代码,但这种方式不是我需要的:我需要一种方法来完全处理我的函数内部的这些中断,允许用户不关心它内部.
PS我之所以需要这个,是因为我有一个创建MathLink对象的函数,在任何中断或中止的情况下必须关闭,但在其他情况下则不能.
Dan*_*lau 11
这种结构以未记录的形式提供.
Internal`WithLocalSettings[
preprocessing,
code,
postprocessing]
Run Code Online (Sandbox Code Playgroud)
将导致后处理在从中止或各种类型的跳转返回之前发生.
也可以看看:
Daniel Lichtblau