gpt4 book ai didi

dart - 在抽象类中没有成员的意义是什么?

转载 作者:行者123 更新时间:2023-12-03 04:20:01 24 4
gpt4 key购买 nike

Exception类如下:

abstract class Exception {
factory Exception([var message]) => _Exception(message);
}
_Exception类是它的实现。如您所见,除了工厂构造函数外,此类中没有声明任何字段或函数,那么拥有此类的意义何在?

最佳答案

就像marker interface告诉读者,子类旨在用作异常(在预期用户捕获并处理异常情况而不是错误的情况下抛出)。
Dart语言不特别对待Exception。从技术 Angular 来看,这是完全不必要的,因为可以抛出所有对象。使您的类实现Exception表示即使不是Error,也要抛出它的目的,但是您应该将其视为文档,而不是程序可以有意义地使用的东西。
Error不同,异常旨在与返回值一样多地捕获和处理。异常应包含足够的信息,以使接收器能够执行有意义的操作。
因此,您永远不要在生产代码中抛出简单的Exception(因此,除非在开发过程中,否则在构造适当的异常类之前,实际上不赞成使用构造函数)。
同样,您永远不要捕获简单的Exception(没有on Exception catch (e) {...}),因为那样您就无法处理实际的问题。如果您只想捕获任何东西,请使用on Object,因为代码可以抛出任何类,并且并非所有异常类都需要实现Exception

关于dart - 在抽象类中没有成员的意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63250609/

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