gpt4 book ai didi

flutter - Dart : asserts or throw Errors 中推荐的方式是什么

转载 作者:行者123 更新时间:2023-12-04 14:53:42 25 4
gpt4 key购买 nike

Dart 明确区分了错误,它表示代码逻辑中的问题,并且永远不会发生并且永远不应该被捕获,而异常则表示基于运行时数据的问题。
我真的很喜欢这种区别,但我想知道我什么时候应该使用 assert()职能?

最佳答案

断言是执行仅在开发中有用的代码的方法,而不会妨碍 Release模式的性能——通常是为了防止由于类型系统中缺少功能而导致的不良状态。

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

我们可以做的:

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

但不能这样做:

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

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

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

在断言中进行检查既可以提高发布性能,也可以提高开发效率。

assert(someVeryExpensiveCheck());

关于flutter - Dart : asserts or throw Errors 中推荐的方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57833399/

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