当前位置: 首页 > 知识库问答 >
问题:

IText构造函数未引发异常或以下流

宗啸
2023-03-14

我有一个静态的方法,用于从PDF中获取标题,使用元数据通过itext,这是一个主要任务的一小部分。

我注意到一条令人费解的路径,我将其缩小到这段代码。具体来说,在我实例化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实例化”或“PdfReader抛出异常”都会打印到控制台。

两者都没有发生。相反,该进程跳过当前所在的每个if/for/while循环,并结束任务。

我想知道是否有人能向我解释发生了什么事以及我应该如何着手解决它?

共有1个答案

史俊德
2023-03-14

在奇怪的事件中,这会被搜索到,是的,捕捉抛出的线程会阻止线程退出。我以前从未见过这样的事。问题背后的原因是PDF受密码保护,因此失败。

 类似资料: