gpt4 book ai didi

matlab - MATLAB 消息 ID 的最佳实践?

转载 作者:太空宇宙 更新时间:2023-11-03 19:11:13 26 4
gpt4 key购买 nike

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

消息ID的格式为:

component:mnemonic

例如MATLAB自带的 undefined variable 消息ID为:

MATLAB:dispatcher:nameConflict

那么当您在自己的代码中使用异常时,您将什么用作消息 ID?你重用 MATLAB 的默认值吗?自己编?组件和助记符字符串用什么?

最佳答案

对于错误(或警告),我通常遵循这种模式 message identifiers , 括号中的内容可能存在也可能不存在:

(className):(parentFunction):functionWhereErrorOccurs:descriptiveMnemonic

组件是:

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

  • parentFunction:如果发生错误的函数是subfunction in an m-filenested function , 这将是 primary m-file function或嵌套函数的父级。因此,您可以拥有多个 parentFunction 组件。

  • functionWhereErrorOccurs:这个组件的名称很容易理解。 ;)

  • descriptiveMnemonic:我强调描述性。例如,inputError 并没有真正告诉我任何信息,但是 notEnoughInputs 清楚地表明我没有传递足够的参数。对于助记符,我总是使用小驼峰大小写,其中单词的第一个字母大写,除了第一个单词。

classNameparentFunction 组件可能被认为有些多余,因为 stack propertyMException class已经确定了父 m 文件的完整路径和错误的行号。但是,message identifier 的目的之一是它允许您唯一地识别错误,而不只是为了追查错误的来源。

假设您有一个函数 myFcn 和一个重载 myFcn 的类 myClass。如果您将第一个错误消息标识符设置为 myFcn:maxIterationsReached,将第二个错误消息标识符设置为 myClass:myFcn:maxIterationsReached,这将允许您,例如,使用 DBSTOP 设置断点仅当此错误由 myClass\myFcn 而不是 myFcn 产生时才会停止执行。同样,唯一的警告 消息标识符很有用,因为您可以专门选择 ignore warnings来自特定功能,同时显示其他功能。

此外,您还可以在标识符中包含组件,指示发生错误的函数位于 package folder 中。或 private folder (但这可能会产生相当长的标识符)。

关于matlab - MATLAB 消息 ID 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com