【问题标题】:Matlab error function structure Error identifierMatlab错误函数结构错误标识符
【发布时间】:2019-03-31 09:46:18
【问题描述】:

我正在编写一个自定义类并且想要抛出一个未定义的操作符错误(如果你执行{[]}*{[]} 会发生这种情况)。我知道我需要用消息、堆栈和标识符创建一个错误结构。这是我遇到的最后一个问题,我不明白MException 是如何工作的。我尝试了以下代码

myError.stack = dbstack;
myError.identifier = MException('foo:noBar','You did not foo bar.');
myError.message = ['You did not foo bar.'];

error(myError)

但得到错误

Error using error
Field "identifier" of input structure must contain a valid MATLAB message identifier.

但我不知道什么是有效标识符,因为帮助部分似乎在循环。

是否有我遗漏的有效标识符列表?或者一些额外的资源?

【问题讨论】:

    标签: matlab error-handling


    【解决方案1】:

    error 命令将为您创建MException 对象,并包含调用堆栈信息。您不应该自己创建这些。

    只需使用您的新 ID 和消息调用 error 命令:

    error('foo:noBar','You did not foo bar.');
    

    如果您真的想为此使用结构,请将这两条信息放入identifiermessage 字段中:

    myError.identifier = 'foo:noBar';
    myError.message = 'You did not foo bar.';
    error(myError)
    

    但这只是前者的更详细的版本。我想如果你保留一个有错误的结构数组,这可能会很有用,所以你只需要error(myErrors(3)),这样你的消息和 ID 就会保持一致。

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2021-03-27
      • 1970-01-01
      相关资源
      最近更新 更多