Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB消息ID的最佳做法?

创建MATLAB异常(MException对象)或打印警告或错误消息时,MATLAB允许您提供一个消息ID,该ID定义要抛出的异常。

消息ID的格式为:

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

MATLAB:dispatcher:nameConflict 因此,当您在自己的代码中使用异常时,您将如何使用消息ID?您是否重用了MATLAB的默认值?弥补自己的?您如何使用组件和助记符字符串?



回答:

我通常遵循以下模式来获取错误(或警告) 消息标识符 ,其中括号内的内容可能存在也可能不存在:

(className):(parentFunction):functionWhereErrorOccurs:descriptiveMnemonic 这些组件是:
  • className :类的名称,如果发生错误的函数是方法/构造函数。
  • parentFunction :如果发生错误的函数是m文件嵌套函数中子函数,则分别为主要m文件函数或嵌套函数的父级。因此,您可以具有多个parentFunction组件。
  • functionWhereErrorOccurs :该组件的名称非常不言自明。 ;)
  • descriptiveMnemonic :我强调描述性 。例如, inputError并没有真正告诉我任何事情,但是notEnoughInputs清楚地表明我没有传递足够的参数。对于助记符,我总是使用小写的驼峰大小写,即单词的第一个字母除第一个单词外均大写。
的className和parentFunction部件可以被认为有些多余,因为stack属性的的MException类已经识别到母体m文件和错误的行号的完整路径。但是, 消息标识符的目的之一是,它使您可以唯一地标识错误,而不仅仅是寻找错误源。

假设您有一个函数myFcn和一个类myClass重载myFcn 。如果将第一个错误消息标识符设为myFcn:maxIterationsReached ,将第二个错误消息标识符设为myClass:myFcn:maxIterationsReached ,则这将允许您例如使用DBSTOP设置断点,该断点仅在以下情况下才暂停执行:此错误是由myClass\myFcn而不是myFcn 。同样,唯一的警告消息标识符很有用,因为您可以特别选择忽略 特定功能的警告 ,而只显示其他功能。

此外,您还可以在标识符中包括一些组件,这些组件指示发生错误的功能位于程序包文件夹私有文件夹中 (但这可能会使标识符很长)。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 01:14


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.