在大多数语言中,当您尝试使用空指针时,会引发异常。然而,在颤振中,情况似乎并非如此。它不是抛出异常,而是停止执行函数。
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");
}
这在生产应用程序中很好。但是当我开发一个应用程序时,我想知道我的应用程序何时试图访问一个空指针。
是否可以在开发期间启用某种“严格”的颤振模式,以便在开发期间捕获这些情况?
最佳答案
实际上,正在引发空指针异常。
在日志输出中,您需要确保正确设置日志级别,即至少处于“错误”级别。
还可以使用try
和catch
捕获异常,如下所示:
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/