当创建MATLAB异常(MEXception对象)或打印警告或错误消息时,MATLAB可让您提供一个消息ID,以定义您投掷。

消息ID为格式:

component:mnemonic

例如,MATLAB自己的未定义变量消息ID是:

MATLAB:dispatcher:nameConflict

因此,当您在自己的代码中使用异常时,您将用于消息ID的什么?您是否重复使用MATLAB的默认值?弥补自己的?您用于组件和助记符字符串什么?

有帮助吗?

解决方案

我通常遵循此模式以获取错误(或警告) 消息标识符, ,括号中的事物可能存在或可能不存在:

(className):(parentFunction):functionWhereErrorOccurs:descriptiveMnemonic

组件是:

  • className: :类的名称,如果发生错误的函数是方法/构造函数。

  • parentFunction: :如果发生错误的功能是 M文件中的子功能 或a 嵌套功能, ,这将是 主要的M文件函数 或分别嵌套函数的父。因此,您可以有多个 parentFunction 组件。

  • functionWhereErrorOccurs: :该组件的名称是非常不言自明的。 )

  • descriptiveMnemonic: :我强调 描述性. 。例如 inputError 真的什么都告诉我,但是 notEnoughInputs 清楚地表明,我没有通过足够的论点。我总是将较低的骆驼盒用于助记符,其中一个单词的第一个字母被大写了,除了第一个单词。

classNameparentFunction 组件 可以 被认为有些多余,因为 stack 财产MException 班级 已经确定了对父M文件的完整路径和错误的行号。但是,一个目的之一 消息标识符 是它允许您 独特 确定出于目的的错误,而不仅仅是追捕错误的源头。

假设你有一个功能 myFcn 和一堂课 myClass 那超载 myFcn. 。如果您为第一个错误发送错误消息标识符 myFcn:maxIterationsReached 以及第二个的错误消息标识符 myClass:myFcn:maxIterationsReached, ,这将使您可以通过 DBSTOP 只有在此错误产生的情况下才能停止执行 myClass\myFcn 并不是 myFcn. 。同样,独特 警告 消息标识符很有用,您可以专门选择 忽略警告具体的 在让他人显示时的功能。

此外,您还可以在标识符中包含组件,表明误差发生的函数位于A 包装文件夹 或a 私人文件夹 (但这可能会导致一个相当长的标识符)。

其他提示

在我的工作中,我使用YMA :( mainFunctionName):(描述性词素),其中YMA只是我的缩写。例如,在我的 Uiinspect实用程序 ID类似于 YMA:uiinspect:XXX.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top