You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 02:53:12