Flutter“严格”模式?

wn9m85ua  于 2023-03-31  发布在  Flutter
关注(0)|答案(1)|浏览(99)

在大多数语言中,当你试图使用空指针时,会抛出一个异常。然而,在Flutter中,情况似乎不是这样。它不会抛出异常,而是简单地停止执行函数。

void test() {
   Map<String, dynamic> testObject = null;

   // attempt to call a function on a null pointer
   var contains = testObject.containsKey("test");

   //will never execute:
   print("never prints");
}

这在生产应用中是可以的,但当我开发应用时,我想 * 知道 * 我的应用何时尝试访问空指针。
有没有可能在开发过程中在Flutter中启用某种“严格”模式,这样我就可以在开发过程中捕捉到这些情况?

2wnc66cl

2wnc66cl1#

由于Flutter在2020年左右在stable上推出了null-safety,因此启用null-safety应该会显示代码中潜在不安全的可空值的警告。这应该有助于您识别代码中导致NullPointerException的原因。
另一方面,当抛出Exception时,函数结束。如果您仍然希望代码在Exception之后继续,则捕获Exception应该允许函数在之后继续。我修改了您提供的代码片段以进行演示。

void test() {
   Map<String, dynamic>? testObject;
   bool? contains;

   try{
     contains = testObject!.containsKey("test");
   } catch (e){
     print('Exception: $e');
   }

   print("Print after Exception");
}

相关问题