异常处理的 MATLAB 问题



我正在尝试优雅地处理异常,以便当用户输入字符时,当需要数字时,他会收到自定义警告/消息的通知。

我知道try,catch具有以下语法:

try
   statements
catch exception
   statements
end

我一直在尝试这样的事情,但无济于事:

number = input('Enter number'); 
try
    assert(isnumeric(number));
catch ME
    warning('NOT A NUMBER');
end

我不明白为什么上面的代码失败,因为assert如果它是假的,则会显示错误消息"断言失败"。

我知道使用 trycatch 有点像大锤方法,但我想了解如何实现上述功能。任何提示将不胜感激。

从帮助命令:

输入

提示用户输入。

结果 = 输入(提示( 在屏幕上显示提示字符串,等待 对于来自键盘的输入,计算输入中的任何表达式, 并返回 RESULT 中的值。要计算表达式,输入访问 当前工作区中的变量。如果按回车键而不按 输入任何内容,输入返回一个空矩阵。

因此,如果用户输入"goat",MATLAB 将尝试计算名为"goat"的变量。这对此问题没有帮助。

但是,进一步向下看帮助命令:

STR = input(PROMPT,'s'( 将输入的文本作为 MATLAB 字符串返回, 不计算表达式

这是更适用于您的问题的内容。

number = input('Enter number', 's');
try
    assert(~isnan(str2double(number)));
catch ME
    warning('NOT A NUMBER');
end

最新更新