Exception Dart:没有异常的消息规范?

Exception Dart:没有异常的消息规范?,exception,dart,Exception,Dart,我学习dart已经有两个星期了,为了练习,我决定学习一门数值向量课程。此类需要一个不相等的构造函数长度异常 我对dart中的异常进行了研究,阅读了文档,但我惊讶地发现没有像java中那样的默认方法,如getMessage()。我知道您可以在抛出异常时添加消息,但我觉得应该有一条默认消息“绑定”到异常实例,您可以在捕获它时检索它。 这使我认为实施可以/应该是: class UnequalVectorLengthException implements Exception {} 在我的java眼中

我学习dart已经有两个星期了,为了练习,我决定学习一门数值向量课程。此类需要一个
不相等的构造函数长度异常

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

class UnequalVectorLengthException implements Exception {}
在我的java眼中,这看起来很奇怪也不正确。那么投掷可能是:

if(stuff) throw UnequalVectorLengthException("Vectors are unequal length");
我还看到有人添加了额外的方法,比如
String errorMessage(){}
,但由于该异常的用户可能不希望该方法存在,因此我认为这不是实现这一点的最佳方法


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

类定义看起来不错。
throw
行不起作用,因为该类没有接受字符串的构造函数。
异常
消息
参数是这样的,在您不想创建更具体类型的情况下,它可以有一个很好的
.toString()

并非
Exception
的每个子类都需要或应该有
消息
。如果一个在特定情况下有意义,那么您可以添加它。在您的示例中,我不需要处理消息,因为它只是重复类名中已经存在的信息

class UnequalVectorLengthException implements Exception {
  @override
  String toString() => 'Vectors are unequal length';
}

if (stuff) throw UnequalVectorLengthException();

顺便说一句,在简单的情况下/探索代码中,可以使用。