flutter 在 try catch 上给我例外
flutter give me exception on try catch
try {
jsonFile.delete();
fileExists = false;
print("File deleted");
} catch(e){
print("File does not exists!");
}
我想在文件不存在的情况下处理异常,但它给了我这个异常:
未处理的异常:FileSystemException:无法删除文件,路径='文件路径'(OS错误:没有这样的文件或目录,errno = 2)
而不是处理它并在控制台中向我发送消息,这是正常的?
jsonFile.delete()
returns 一个 Future,这意味着它将 运行 异步,因此不会将错误发送到您的 catch 块,该块 运行 是同步的。您可以等待结果:
try {
await jsonFile.delete();
fileExists = false;
print("File deleted");
} catch(e){
print("File does not exists!");
}
或者,如果你想让它保持异步,你可以在 Future 上使用 .catchError()
来捕获错误:
try {
jsonFile.delete()
.then((value) => print("File deleted"));
.catchError((error) => print("File does not exist"));
fileExists = false;
} catch(e){
print("File does not exists!");
}
有关 Futures 和使用它们的更多信息,请参阅 this page。
try {
jsonFile.delete();
fileExists = false;
print("File deleted");
} catch(e){
print("File does not exists!");
}
我想在文件不存在的情况下处理异常,但它给了我这个异常: 未处理的异常:FileSystemException:无法删除文件,路径='文件路径'(OS错误:没有这样的文件或目录,errno = 2) 而不是处理它并在控制台中向我发送消息,这是正常的?
jsonFile.delete()
returns 一个 Future,这意味着它将 运行 异步,因此不会将错误发送到您的 catch 块,该块 运行 是同步的。您可以等待结果:
try {
await jsonFile.delete();
fileExists = false;
print("File deleted");
} catch(e){
print("File does not exists!");
}
或者,如果你想让它保持异步,你可以在 Future 上使用 .catchError()
来捕获错误:
try {
jsonFile.delete()
.then((value) => print("File deleted"));
.catchError((error) => print("File does not exist"));
fileExists = false;
} catch(e){
print("File does not exists!");
}
有关 Futures 和使用它们的更多信息,请参阅 this page。