Dart:是否没有针对异常的消息规范?

时间:2019-03-07 15:21:36

标签: exception dart

我已经学习飞镖了两周了,出于练习的目的,我决定研究数字矢量类。此类需要UnequalVectorLengthException

我对dart中的异常进行了研究,阅读了文档,但令我惊讶的是,没有像Java中的getMessage()这样的默认方法。我知道您可以在引发异常时添加消息,但是我觉得应该有一个默认消息“绑定”到异常实例,您可以在捕获异常时将其检索。 这使我认为实现可以/应该是:

class UnequalVectorLengthException implements Exception {}

在我的Java看来看起来很奇怪而且不正确。那么抛出可能是:

if(stuff) throw UnequalVectorLengthException("Vectors are unequal length");

我还看到人们添加了诸如String errorMessage() {}之类的额外方法,但是由于该异常的用户可能不希望该方法存在,因此我认为这不是实现此目的的方法。

我的问题:上面显示的代码是在dart中实现异常的正确方法(在这种情况下,一个简单的注释就可以了),还是有更好的方法来实现异常?

1 个答案:

答案 0 :(得分:2)

类定义看起来不错。 throw行将不起作用,因为该类没有采用String的构造函数。 message的{​​{1}}参数是一个不错的Exception,在您不想打扰创建更具体的类型的情况下。

并非.toString()的每个子类都需要或应该有Exception。如果在特定情况下有意义,则可以添加它。在您的示例中,我不会打扰消息,因为它只是重复类名中已经存在的信息。

message