首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab中的异常与错误

Matlab中的异常与错误
EN

Stack Overflow用户
提问于 2013-07-26 16:48:17
回答 2查看 2.9K关注 0票数 14

Matlab提供了两种机制来发出错误信号:error函数和语言的异常处理机制MException +MException

看起来它们在很大程度上是等价的:error函数和MException函数具有非常相似的语法。通过error()引发的错误可以被catch捕获,而与错误相关的工具(如dbstop if errorlasterr)似乎也适用于异常。

是否有理由选择error('Foo:Bar', 'Some human-readable message about bar')而不是throw(MException('Foo:Bar', 'Some human-readable message')),反之亦然?

(它们都是内置的,所以你不能就这样打开(例如)M看看其中一个是否是另一个的琐碎包装!)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-26 17:26:19

这两种情况实际上是等价的(如果捕捉到错误或异常,唯一的区别是'cause'属性的单元格的分配略有不同)。error函数只会使生成和抛出异常变得更容易。MException的一个优点是,您可以创建一个MException对象,并将其作为变量传递,更改其属性(例如,增加一个原因),并在需要时更改throwrethrow。然而,大多数情况下,您只想使用error

来自此页的MathWorks包含了许多关于MException类的详细信息。

票数 7
EN

Stack Overflow用户

发布于 2016-09-26 11:32:50

关于这条线MATLAB答案上还有一些更有用的信息。

答案是,错误要老得多,MException更新、更灵活。错误已被修改以创建MException。

错误被认为更容易使用,并且针对来自科学和工程界的MATLAB终端用户。MException更高级(因为ME对象可以修改和重新抛出),并且是针对软件开发社区的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17886796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档