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

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");
}

这在生产应用程序中很好。但是当我开发一个应用程序时,我想知道我的应用程序何时试图访问一个空指针。
是否可以在开发期间启用某种“严格”的颤振模式,以便在开发期间捕获这些情况?

最佳答案

实际上,正在引发空指针异常。
在日志输出中,您需要确保正确设置日志级别,即至少处于“错误”级别。
还可以使用trycatch捕获异常,如下所示:

try {
  Map<String, dynamic> testObject = null;

  testObject.containsKey('test');
} catch (e) {
  // You can process the exception ("e" in this case) in this catch block.
  // print(e);
  // debugPrint(e);
}

如果一个抛出的异常被捕获,它将不会自动打印到日志中,这意味着您在捕获该异常时必须自己处理它。

关于dart - flutter '严格'模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51451454/

10-12 03:34