使用 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 应用程序中的异常处理。