Home > Back-end >  flutter give me exception on try catch
flutter give me exception on try catch

Time:09-18

try {
        jsonFile.delete();
        fileExists = false;
        print("File deleted");
      } catch(e){
        print("File does not exists!");
      }

I want to handle the exception in case the file doesn't exist but it give me this exception: Unhandled Exception: FileSystemException: Cannot delete file, path = 'file path' (OS Error: No such file or directory, errno = 2) instead of handling it and send me a message in the console, it's normale?

CodePudding user response:

jsonFile.delete() returns a Future, meaning it will run asynchronously and therefor not send errors to your catch block, which runs synchronously. You can await the result:

try {
    await jsonFile.delete();
    fileExists = false;
    print("File deleted");
} catch(e){
    print("File does not exists!");
}

Or, if you want to keep it asynchronous, you can use .catchError() on the Future to catch errors:

try {
    jsonFile.delete()
      .then((value) => print("File deleted"));
      .catchError((error) => print("File does not exist"));
    fileExists = false;
} catch(e){
    print("File does not exists!");
}

For more about Futures and working with them, see this page.

  • Related