Flutter 颤振:在Future函数中使用try/catch
在我的应用程序中,我想用相机拍摄图像,我正在使用Flutter 颤振:在Future函数中使用try/catch,flutter,dart,try-catch,imagepicker,Flutter,Dart,Try Catch,Imagepicker,在我的应用程序中,我想用相机拍摄图像,我正在使用image\u picker库 这是我的密码: import 'dart:io'; import 'package:image_picker/image_picker.dart'; Future<File> getImage() async { var image = await ImagePicker.pickImage(source: ImageSource.camera); return image; } 我的
image\u picker
库
这是我的密码:
import 'dart:io';
import 'package:image_picker/image_picker.dart';
Future<File> getImage() async {
var image = await ImagePicker.pickImage(source: ImageSource.camera);
return image;
}
我的IDE抛出错误,变量图像
未定义
问题:
try/catch
try/catch
是解决此类问题的方法吗试试看{
var image=等待ImagePicker.pickImage(源:ImageSource.camera);
}捕获(e){
印刷品(e);
}
返回图像;
到
var图像;
试一试{
image=等待ImagePicker.pickImage(源:ImageSource.camera);
}捕获(e){
印刷品(e);
}
返回图像;
关于您的问题:
问题1。在这种情况下,如何正确使用try/catch
A1。我认为你做得对
-
问题2。try/catch是解决此类问题的方法吗
A2。是的,绝对是。您可能需要检查上的异常
-
第三季度。是否有其他我应该关心的错误/异常
A3。这很难知道,您应该查看或处理您感兴趣的异常,并让其他人保持警惕(
AlertDialog
,Snackbar
…等等)。与大多数类似C的语言一样。换句话说,如果在{
..}
块内声明变量,则不能在该块外直接引用该变量。如果需要在外部块中使用变量,则需要将其声明移出
try
/catch
AssertionError
ArgumentError
),等等
通常的建议是。(通常这意味着只捕获运行时错误,而这些错误应该是从异常衍生而来的异常。在实践中,有些代码不遵循这一区别,在某些情况下,应该被视为逻辑错误的代码和应该被视为运行时错误的代码之间没有明确的界限。)
try
/catch
是解决此类问题的方法吗
如果没有预先检查操作是否成功的机制(“三思而后行”),那么你别无选择,只能尝试并检查失败(“请求原谅比允许更容易”)。我也这样使用,到目前为止,我没有发现任何错误/异常,效果很好。太棒了,问题解决了。再次澄清一下,return
将返回调用wait
后分配给变量的实际值?我的意思是,如果变量有默认值,并且它的值随wait
调用而改变,因此它将返回新值而不是默认值。@如果可能,请查看并回答我的问题。var image
最好是文件图像代码>。由于它现在是单独声明的,它的类型将不再被推断,因此它将成为动态的(因此不会进行类型检查)。你是对的,但我认为每个人都有选择编码标准的权利,所以我没有指出:感谢你的回答并澄清概念!请你回答我的问题好吗?
try {
var image = await ImagePicker.pickImage(source: ImageSource.camera);
} catch (e) {
print(e);
}
return image;