gpt4 book ai didi

flutter - Dart中推荐的方法是:断言或引发错误

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

Dart明确区分了Error和Exception,它们是代码逻辑中的问题,该错误永远不会发生,也永远不会被捕获,这是基于运行时数据的信号。
我真的很喜欢这种区别,但是我想知道我什么时候应该使用assert()函数?

最佳答案

断言是仅在开发中执行代码而又不影响 Release模式性能的方法-通常是防止类型系统中缺少功能而导致的不良状态。

例如,只有断言可用于进行防御性编程并提供const构造函数。

我们可以做的:

class Foo {
const Foo(): assert(false);
}

但不能:

class Foo {
const Foo() { throw 42; }
}

同样,一些健全性检查也相对昂贵。

例如,在Flutter的上下文中,您可能想遍历小部件树以检查小部件祖先上的某些内容。但这是昂贵的,因为这仅对开发人员有用。

在断言中执行该检查既可以提高发行版的性能,又可以提高开发的实用性。

assert(someVeryExpensiveCheck());

关于flutter - Dart中推荐的方法是:断言或引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64451463/

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