exception - 当 JVM 中捕获到异常时,如何追踪具有错误 CRC 的损坏 PNG?
问题描述
我的应用程序使用了数百个 PNG,其中一个导致sun.awt.image.PNGImageDecoder$PNGException: crc corruption
堆栈跟踪记录到控制台,但异常被捕获,无论它是什么,图像都会加载。我的代码没有异常,堆栈跟踪无法以任何方式识别 PNG。
我想更换损坏的 PNG,但很难找到。我编写了一个小应用程序来加载每个 png,并且再次记录了异常,但它无法识别是哪一个。所以我想知道为 java.desktop/sun.awt.image.PNGImageDecoder 类编写一个自定义日志处理程序是否是一个好主意,它不仅会记录日志,还会引发错误,这会使我的扫描仪停止工作文件。有没有更好的办法?
sun.awt.image.PNGImageDecoder$PNGException: crc corruption
at java.desktop/sun.awt.image.PNGImageDecoder.getChunk(PNGImageDecoder.java:718)
at java.desktop/sun.awt.image.PNGImageDecoder.getData(PNGImageDecoder.java:726)
at java.desktop/sun.awt.image.PNGImageDecoder.produceImage(PNGImageDecoder.java:253)
at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:269)
at java.desktop/sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:212)
at java.desktop/sun.awt.image.ImageFetcher.run(ImageFetcher.java:176)
解决方案
推荐阅读
- c# - Catel 是否有任何方式同步显示窗口(基于 ViewModel)?
- excel - 如何修复 Office 2013 上发生的范围激活运行时错误 9,但不在 Office365 上
- tfs - 作为存档 zip 文件名一部分的时间格式
- java - 无法将“java.lang.String”类型的值转换为所需的“java.util.Date”类型
- mysql - 如何通过改进 MySQL 的 my.ini 设置来减少磁盘负载
- android - 重新启动应用程序时的应用程序类行为
- reactjs - Reactjs promise.all 调用顺序
- node.js - Mongoose 不适用于 hapi.js(简单设置)
- angular - 更新到 HttpClient 时:解析期间未捕获 Promise/Http Failure
- php - 使用 Vue + PHP 进行实时搜索