MATLAB 错误控制语句 - try, catch

17 Mar 2025 | 阅读 2 分钟

MATLAB 定义了一些用于控制错误的函数。 try-catch 语句是一种错误控制函数,下面将对此进行说明。

Try - catch 语句

Try-catch 语句提供错误处理控制。 try-catch 语句的一般形式是

语法

首先执行 try 和 catch 之间的语句。 如果在执行 try 和 catch 之间的语句时没有出现错误,MATLAB 将进一步执行 end 关键字之后的语句/代码。 如果在执行 try 和 catch 之间的语句期间出现错误,MATLAB 将执行 catch 和 end 之间的语句。 可以借助以下示例来解释 try-catch 语句。

示例

输出

 
 MException with properties:

    identifier: 'MATLAB:catenate:dimensionMismatch'
       message: 'Dimensions of arrays being concatenated are not consistent.'
         cause: {0�1 cell}
         stack: [3�1 struct]
    Correction: []

MATLAB Error Control Statement-try, catch

以下是在 MATLAB 中使用 try/catch 语句时的要点

  • 程序执行的控制首先进入 try 块并执行每个语句。
  • 如果在执行期间发生任何错误,则控制立即传递到 catch 块,而 try 块的任何其他语句都不会被执行。
  • 如果 try 块内没有发生错误,则控制不会进入 catch 块。 然后,控制将到达 try/catch 块的 end 关键字之后的语句。
  • 当 try 块中发生任何错误或异常时,MATLAB 构造 MException 类的实例并在 catch 语句中返回该对象。
  • 可以使用变量 ME 访问 MException 类对象。
  • MException 类对象具有五个属性 - identifier, message, stack, causeCorrection。 这些属性描述了有关发生的异常的详细信息。
  • 我们不能使用多个 catch 块,在一个 try 块内只允许一个 catch 块。
  • 如果需要,我们可以使用嵌套的 try/catch 块。

显示 MException 类对象属性的示例

输出

causeException = 
  MException with properties:

    identifier: 'MATLAB:mycode:dimensions'
       message: 'dimension mismatch occured: First argument has 4 columns, while second argument has 3 columns.'
         cause: {}
         stack: [0�1 struct]
    Correction: []

程序终止

程序终止控制允许在程序正常终止点之前的某个点退出我们的程序。


下一主题MATLAB return