Я обычно следую этому шаблону для ошибок (или предупреждений) идентификаторы сообщений , где вещи в скобках могут присутствовать или не присутствовать:
(className):(parentFunction):functionWhereErrorOccurs:descriptiveMnemonic
Компоненты:
className
: имя класса, если функция, в которой происходит ошибка, является методом / конструктором.
parentFunction
: Если функция, в которой происходит ошибка, является подфункцией в m-файле или вложенной функцией , это будет primary Функция m-файла или родительская функция для вложенной функции соответственно. Поэтому у вас может быть несколько parentFunction
компонентов.
functionWhereErrorOccurs
: название этого компонента не требует пояснений. ;)
descriptiveMnemonic
: подчеркиваю описательный . Например, inputError
ничего мне не говорит, но notEnoughInputs
дает понять, что я не передал достаточно аргументов. Я всегда использую нижний регистр верблюдов для мнемоники, где первая буква слова пишется с большой буквы, кроме самого первого слова.
Компоненты className
и parentFunction
можно считать несколько избыточными, поскольку свойство 1046 * класса MException
уже идентифицирует полный путь к родительскому m-файлу и номер строки ошибки. Однако одна из целей идентификатора сообщения заключается в том, что он позволяет однозначно идентифицировать ошибку для целей, отличных от простого поиска источника ошибки.
Допустим, у вас есть функция myFcn
и класс myClass
, который перегружает myFcn
. Если вы сделаете идентификатор сообщения об ошибке для первого из них myFcn:maxIterationsReached
, а идентификатор сообщения об ошибке для второго - myClass:myFcn:maxIterationsReached
, это позволит вам, например, установить точку останова с помощью DBSTOP , которая останавливает выполнение только тогда, когда эта ошибка вызвана myClass\myFcn
, а не myFcn
. Кроме того, уникальные предупреждения идентификаторы сообщений полезны тем, что вы можете специально выбрать игнорировать предупреждения из определенных функций, позволяя отображать другие.
Кроме того, вы также можете включить компоненты в идентификатор, указывающий, что функция, в которой возникает ошибка, находится в папке пакета или личной папке (но это может привести к довольно длинный идентификатор).