12.1.3从错误中恢复

Octave提供了几种从错误中恢复的方法。有尝试/接住阻碍,unwind_protect/unwind_protect_cleanup块,最后是on清理命令

这个on清理命令将一个普通的Octave变量(触发器)和一个任意函数(动作)关联起来。只要Octave变量存在——无论是从于函数返回、错误,还是仅仅因为该变量已被删除清楚的--则执行所赋值的函数。

该函数可以执行任何必要的清理操作,例如关闭打开的文件句柄、打印错误消息或将全局变量恢复为其初始值。最后一个例子是Octave代码的一个非常方便的习惯用法。例如

函数rand42 old_state=rand(“state”);restore_state=onCleanup(@()rand(“state”,old_state));兰特(“国家”,42)。。。endfunction#rand生成器状态从onCleanup恢复
 
: obj = onCleanup (function)

创建一个特殊对象来执行给定的作用一旦销毁。

如果对象被复制到多个变量(或数组或结构体数组)或从函数返回,则作用将仅在清除对象的最后一个副本后执行。

输入作用是函数的句柄。句柄可以指向一个匿名函数,以便直接将命令放置在on清理呼叫

编程注意事项:如果多个本地on清理变量是创建的,调用它们的理论是未指定的。类似函数详见Unnd_protet语句.

用例

Octave:1>触发器=onCleanup(@()disp('nCleanup was executed'));Octave:2>清除triggerCleanup已执行Octave:3

版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号