我正在尝试捕获代码行中发生的异常
var excel = Excel.decodeBytes(bytes);
但错误没有被捕获。
编译器停在该行并显示:
Exception:
StateError (Bad state: No element)
如果我在这个地方跳过一些异常,代码将正确执行(我的意思是没有捕获到任何内容)。控制台不会出现任何错误,只会打印“Excel解码成功”,并且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); // exception in this line ...
print('Excel decoding successful'); // ... but still successful
//rest of code
} 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');
}
}
我尝试过:
decodeBytes
方法可能不是投掷。
这里是一个示例,如何处理它。
Excel parseExcelFile(List<int> _bytes) {
return Excel.decodeBytes(_bytes);
}
然后
Excel excel = await compute(parseExcelFile, _bytes);