主要内容

断言

如果条件为假,抛出错误

描述

例子

维护(气孔导度抛出一个错误气孔导度是假的。

例子

维护(气孔导度味精抛出错误并显示错误消息,味精,如果气孔导度是假的。

维护(气孔导度味精A1,…,一个显示包含格式化转换字符(如MATLAB中使用的字符)的错误消息®sprintf功能,如果气孔导度是假的。中的每个转换字符味精转换为其中一个值A1,…,一个

例子

维护(气孔导度errID味精抛出错误,显示错误消息,味精,并包含异常的错误标识符,如果气孔导度是假的。这个标识符使您能够区分错误并控制MATLAB遇到错误时发生的情况。

维护(气孔导度errID味精A1,…,一个包括异常上的错误标识符,并显示格式化的错误消息。

例子

全部折叠

断言值,x,大于指定的最小值。

minVal = 7;x = 26;断言(minVal < x)

表达式的计算结果为true,断言通过。

的值x在指定的最小值和最大值之间。

maxVal = 13;断言((minVal < x) && (x < maxVal))
断言失败。

表达式的计算结果为false。断言失败,MATLAB抛出一个错误。

断言两个数的乘积是一个双精度数。

一个= 13;b =单(42);c = a * b;断言(isa (c,“双”),Product不是type double。
产品不是型双。

增强错误消息以显示的数据类型c

断言(isa (c,“双”),“Product是类型%s,不是double。”类(c))
产品是单型,不是双型。

使用断言函数测试正常代码执行中不应发生的条件。如果系数是数值的,那么计算的根也应该是数值的。使用指定的系数和计算的根的二次方程应该是零。

函数x = quadraticSolver(C) validateattributes(C,{“数字”},{“大小”,[1 3]}) a = C(1);b = C (2);c = c (3);x (1) = (- b + sqrt (b * * c ^ 2 - 4) / (2 *);x (2) = (-b-sqrt (b * * c ^ 2 - 4) / (2 *);断言(isnumeric (x),“quadraticSolver: nonnumericRoots”...'计算的根不是数字'y = a*x(1)^2+b*x(1)+c;y2 = * x (2) ^ 2 + b * x (2) + c;断言(日元= = 0,“quadraticSolver: root1Error”'Error in first root')维护(isequal (y2, 0),“quadraticSolver: root2Error”'第二根出错'结束

输入参数

全部折叠

条件,指定为有效的MATLAB表达式。该表达式必须是逻辑的或可转换为逻辑的。如果气孔导度是假的,断言函数抛出错误。气孔导度可以包含关系操作符(例如<==)和逻辑运算符(例如&&||,或).使用逻辑运算符创建复合表达式。MATLAB从左到右计算复合表达式,遵循运算符优先规则。

例子:< 0

例子:存在(“myfunction.m”、“文件”)

有关断言失败的信息,指定为字符向量或字符串标量。此消息显示为错误消息。要格式化消息,请使用转义序列,例如\ t\ n.控件支持的任何格式说明符也可以使用万博1manbetxsprintf功能,如% s% d.属性指定转换说明符的值A1,…,一个输入参数。有关更多信息,请参见格式化文本

请注意

必须指定多个输入参数断言如果你想要MATLAB转换特殊字符(例如\ t\ n% s,% d)。

例子:“断言条件失败了。”

数字、字符或字符串数组。此输入参数提供与中的转换说明符对应并替换的值味精

断言失败的标识符,指定为字符向量或字符串标量。使用标识符来帮助识别错误的来源或控制程序中错误的选定子集。

错误标识符包括一个或多个组件字段和一个助记符字段。各字段之间必须用冒号分隔。例如,带有组件字段的错误标识符组件和一个记忆场助记符被指定为“组件:助记符”.组件和助记字段都必须以字母开头。其余字符可以是字母数字(A-Z, A-Z, 0-9)和下划线。中任何地方都不能出现空白字符errID.有关更多信息,请参见MException

例子:“MATLAB: singularMatrix”

例子:MATLAB: narginchk: notEnoughInputs

提示

  • 当您发出一个错误时,MATLAB捕获关于它的信息并将其存储在数据结构中,该数据结构是MException类。您可以使用try / catch.或者,如果您的程序因为异常而终止并将控制权返回到命令提示符,您可以使用MException.last

  • 如果断言失败发生在试一试块,MATLAB不停止程序的执行。在这种情况下,MATLAB将控制传递给块。

扩展功能

另请参阅

|

介绍了R2007a