首页 > 解决方案 > 为什么除以零不会在 Dart 中崩溃?

问题描述

我认为以下代码应该崩溃,因为我正在执行整数除以零:

int n = 42;
eatCake(n / 0);

为什么除以零不会使我的应用程序崩溃?

标签: flutterdart

解决方案


这里的关键n / 0不是整数除法

Dart 自动执行double除法,double类型为double.infinity常量。这意味着print(n / 0)将产生Infinity.
此外,double.infinity实际上定义为1.0 / 0.0

如果您改用整数除法,您将收到IntegerDivisionByZeroException

print(n ~/ 0); // <- IntegerDivisionByZeroException

推荐阅读