gpt4 book ai didi

exception - 在 GNU Octave 中,如何捕获异常

转载 作者:行者123 更新时间:2023-12-02 11:28:12 25 4
gpt4 key购买 nike

在 GNU Octave 中捕获异常的正确语法是什么?如果没有文件存在,我有一行失败:

mymatrix = load("input.txt");

如果 input.txt 中有一些坏行,则 Octave 音程会出现此类情况:

error: load: unable to extract matrix size from file `input.txt'
error: called from:
error: /home/el/loadData.m at line 93, column 20
error: main at line 37, column 86
error: /home/el/main.m at line 132, column 5

我想在 Octave 中使用 try/catch block ,正确的语法是什么?

我希望能够干净、准确地向用户报告输入文件出现问题(缺失、配置不正确的列、列太多、字符错误等)并进行恢复。不仅仅是吐出神秘的错误并停止。最好的方法是什么?

最佳答案

首先,阅读 official documentation on Octave try/catch

general exception handling

以下是在 GNU Octave 中捕获异常的正确语法:

%make sure foobar.txt does not exist.
%Put this code in mytest.m.

try
mymatrix = load("foobar.txt"); %this line throws an exception because
%foobar does not exist.
catch
printf ("Unable to load file: %s\n", lasterr)
end


disp(mymatrix) %The program will reach this line when the load command
%fails due to missing input file. The octave catch block eats the
%exception and ignores it.

当您运行上述代码时,将打印:

Unable to load file: load: unable to find file foobar.txt

然后,加载文件抛出的异常将被忽略,因为 disp(mymatrix) 未在 try block 中定义,额外的异常将停止程序,因为 mymatrix 未定义。

关于exception - 在 GNU Octave 中,如何捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com