Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 颤振';严格的';模式_Dart_Flutter_Strict - Fatal编程技术网

Dart 颤振';严格的';模式

Dart 颤振';严格的';模式,dart,flutter,strict,Dart,Flutter,Strict,在大多数语言中,当您尝试使用空指针时,将引发异常。然而,在颤振中,情况似乎并非如此。它不再抛出异常,而是简单地停止执行函数 void test() { Map<String, dynamic> testObject = null; // attempt to call a function on a null pointer var contains = testObject.containsKey("test"); //will never execut

在大多数语言中,当您尝试使用空指针时,将引发异常。然而,在颤振中,情况似乎并非如此。它不再抛出异常,而是简单地停止执行函数

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");
}
void测试(){
Map testObject=null;
//尝试在空指针上调用函数
var contains=testObject.containsKey(“测试”);
//永远不会执行:
打印(“从不打印”);
}
这在生产应用程序中很好。但当我开发应用程序时,我想知道我的应用程序何时尝试访问空指针


有没有可能在开发过程中在颤振中启用某种“严格”模式,这样我就可以在开发过程中捕捉到这些情况?

但它确实抛出了一个异常。我不明白你的意思,我自己在很多情况下都陷入了这样的境地:在对空指针调用任何函数时,颤振显示错误。我也不明白为什么它没有在你的案例中抛出错误。但是,您发布的代码肯定应该在调用.containsKey(“test”)的行中抛出一个错误,类似这样的=>containsKey是在null对象上调用的。不过,它不会抛出异常。至少在我的设备上,只要遇到空访问,它就会停止执行函数。没有日志/控制台警告,没有异常,什么都没有。这是一个错误吗?使用Dart,您还可以使用条件运算符仅在值不为null时继续链接
testObject?.containsKey(“test”)
如果
testObject
为空,则为空;如果
true
/
false
不为空,则为空。您可能在某处捕获了异常(或者可能是颤振框架?)。您可以尝试运行调试器:,然后运行
set break on exceptions All
,您应该可以在这里看到抛出的异常,并能够进入异常处理程序查看发生了什么。