gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:09:56 25 4
gpt4 key购买 nike

我已经学习 Dart 几个星期了,为了练习目的,我决定研究一个数字矢量类。此类需要 UnequalVectorLengthException .

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

class UnequalVectorLengthException implements Exception {}

这在我的 java 眼中看起来很奇怪且不正确。那么 throw 可能是:
if(stuff) throw UnequalVectorLengthException("Vectors are unequal length");

我还看到人们添加了额外的方法,例如 String errorMessage() {} ,但是由于该异常的用户可能不希望存在此方法,因此我认为这不是执行此操作的首选方法。

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

最佳答案

类定义看起来不错。 throw line 将不起作用,因为该类没有采用 String 的构造函数。 message Exception 的参数是为了让它有一个不错的.toString()在您不想费心创建更具体的类型的情况下。

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

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

if (stuff) throw UnequalVectorLengthException();

关于exception - Dart:没有异常的消息规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55047245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com