Octave提供了几种从错误中恢复的方法。有try
/catch
阻碍,unwind_protect
/unwind_protect_cleanup
块,最后是onCleanup
命令
这个onCleanup
命令将一个普通的Octave变量(触发器)和一个任意函数(动作)关联起来。只要Octave变量存在——无论是从于函数返回、错误,还是仅仅因为该变量已被删除clear
--则执行所赋值的函数。
该函数可以执行任何必要的清理操作,例如关闭打开的文件句柄、打印错误消息或将全局变量恢复为其初始值。最后一个例子是Octave代码的一个非常方便的习惯用法。例如
function rand42 old_state = rand ("state"); restore_state = onCleanup (@() rand ("state", old_state)); rand ("state", 42); ... endfunction # rand generator state restored by onCleanup
obj =
onCleanup (function)
¶创建一个特殊对象来执行给定的function一旦销毁。
如果对象被复制到多个变量(或数组或结构体数组)或从函数返回,则function将仅在清除对象的最后一个副本后执行。
输入function是函数的句柄。句柄可以指向一个匿名函数,以便直接将命令放置在onCleanup
呼叫
编程注意事项:如果多个本地onCleanup
变量是创建的,调用它们的理论是未指定的。类似函数详见Unnd_protet语句.
用例
octave:1> trigger = onCleanup (@() disp ('onCleanup was executed')); octave:2> clear trigger onCleanup was executed octave:3
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2