我有一个静态方法用于通过itext使用元数据从PDF获取 Headers ,该方法用作主要任务的一小部分 .
我注意到一条莫名的路径,我缩小到这部分代码 . 具体来说,在我实例化PdfReader的行中,该进程不会抛出异常或继续执行print语句 . 事实上,它清除了我的所有for循环到我的程序的顶层,并且好像什么也没发生,我的任务完成了 .
try {
System.out.println("Entered method");
PdfReader myReader = new PdfReader(file.getAbsolutePath());
System.out.println("Reader instantiated"); //if no issues, prints to console
Map<String, String> info = myReader.getInfo();
System.out.println(info.get("Title"));
return info.get("Title");
} catch (IOException e) {
System.out.println("PdfReader throws exception"); //if issues, prints to console
e.printStackTrace();
}
除非我弄错了,当在我的方法中执行这组代码时,“Reader Instantiated”或“PdfReader throws exception”会打印到控制台 .
都没有发生 . 相反,该进程会跳过当前所在的每个if / for / while循环并结束任务 .
我想知道是否有人可以向我解释发生了什么以及我该如何解决这个问题?
1 回答
在奇怪的事件中,这是搜索,是的,捕捉
Throwable
阻止线程拯救 . 我以前从未见过这样的东西 . 问题背后的原因是PDF受密码保护,因此getInfo()
失败 .