主要内容
使用 try/catch 处理错误
在您的程序遇到错误后,可以使用 try/catch
语句执行代码。try/catch
语句在以下情况下很有用:
希望以另一种方式来完成程序以避免错误
需要清除不必要的、意外的错误结果
有许多有问题的输入参数或命令
将 try/catch
语句安排到代码块中,类似于以下伪代码:
try try block... catch catch block... end
try block
中出现错误,MATLAB® 会跳过 try
块中其余的任何命令并执行 catch block
中的命令。如果 try block
中没有出现任何错误,MATLAB 会跳过整个 catch block
。例如,try/catch
语句可避免引发错误。以 combinations
函数为例,该函数返回 n
个元素中 k
个元素的组合数。
function com = combinations(n,k) com = factorial(n)/(factorial(k)*factorial(n-k)); end
MATLAB 会在 k > n
时引发错误。您不能构造一个元素数 k
多于拥有的元素数 n
的集合。使用 try/catch 语句,您可以避免错误并执行此函数,而不管输入顺序如何:
function com = robust_combine(n,k) try com = factorial(n)/(factorial(k)*factorial(n-k)); catch com = factorial(k)/(factorial(n)*factorial(k-n)); end end
robust_combine
将任何顺序的整数视为有效输入:C1 = robust_combine(8,4) C2 = robust_combine(4,8)
C1 = 70 C2 = 70
或者,如果某变量在您的 catch
语句之后,则您可以捕获有关错误的更多信息:
catch MExc
MExc
是一个 MException
类对象,其中包含有关所引发的错误的更多信息。要详细了解如何访问 MException
对象中的信息,请参阅 MATLAB 应用程序中的异常处理。