Octave支持一种有限形式的异常处理,该处理模仿了无保护形式的Lisp。
的一般形式unwind_protect
块看起来是这样的:
unwind_protect</body>unwind_protect_cleanup清理end_unwind_protect
这里的</body>和清理都是可选的,并且可能包含任何Octave表达式或命令。unwind_protect中的语句清理保证无论控制如何退出都能执行</body>.
这对于保护全局变量的临时更改不受可能的错误的影响非常有用。例如,以下代码将始终恢复全局变量的原始值frobnostate
即使在的第一部分出现错误unwind_protect
块
save_frobnostice=frobnosticate;ununwind_protect frobnosticate=true。。。ununwind_protect_cleanup frobnosticate=保存故障;end_unwind_protect
没有unwind_protect
,的值frobnostate如果在评估的第一部分时发生错误,则不会恢复unwind_protect
块,因为计算将在错误点停止,并且不会执行恢复值的语句。
除了unwind_protect,Octave还支持另一种形式的感知处理try
块
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号