Flutter中Try-Catch无法捕获StateError异常求助
无法捕获Excel.decodeBytes抛出的StateError异常
我尝试捕获var excel = Excel.decodeBytes(bytes);代码行抛出的异常,但始终未能成功。编译器会在该行暂停并显示:
Exception: StateError (Bad state: No element)
若跳过此处的几次异常,代码可正常执行——没有任何异常被捕获,控制台仅打印“Excel decoding successful”,且Excel文件能正确导入。
相关代码
void readFile(File file) { log('Excel Data Import In Process...'); var bytes = File(file.path).readAsBytesSync(); try { print('Excel Import in process'); var excel = Excel.decodeBytes(bytes); // 此处抛出异常... print('Excel decoding successful'); // ...但仍执行成功 // 其余代码 } on StateError catch (e) { print('StateError Excel: $e'); } on Exception catch (e) { print('Exception Excel: $e'); } catch (e, stackTrace) { print('Error Excel: $e'); print('Stack $stackTrace'); } }
已尝试的排查操作
- 使用其他Excel文件,问题仍出现;
- 使用空Excel文件,问题仍出现;
- 直接读取本地文件而非通过文件选择器,问题仍出现;
- 在全新Flutter项目中运行代码,无异常;
- 在真机的profile模式下运行应用,无异常。
内容的提问来源于stack exchange,提问作者NickNefyodov
相关产品推荐
相关产品推荐

