Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IText构造函数未引发异常或以下流_Java_Exception_Pdf_Itext - Fatal编程技术网

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

Java IText构造函数未引发异常或以下流,java,exception,pdf,itext,Java,Exception,Pdf,Itext,我有一个静态方法,用于通过itext使用元数据从PDF获取标题,这是主要任务的一小部分 我注意到一条莫名其妙的路径,我把它缩小到这段代码。具体地说,在我实例化PdfReader的那一行中,进程不会抛出异常或继续执行print语句。事实上,它清除了我的所有for循环,直到我的程序的顶层,就像什么都没有发生,我的任务完成了一样 try { System.out.println("Entered method"); PdfReader myReader = new PdfReader(

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

我注意到一条莫名其妙的路径,我把它缩小到这段代码。具体地说,在我实例化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();
}
除非我弄错了,否则在我的方法中执行这组代码时,读取器实例化或PdfReader抛出异常都会打印到控制台

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


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

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

尝试捕获Throwable而不是IOException。是否发生了一些不同的情况?对于加密和解密,iText使用了类路径上可能没有的外部库。在这种情况下,会抛出绕过catch子句的错误。@mkl据我所知,唯一的问题是它绕过了catch子句。我使用的另一种方法实际上是在iText中打开PDF,它会正确地抛出密码保护的异常。这一个抛出了一个Throwable,并且没有出现错误、异常或堆栈跟踪,这使得调试成为一场噩梦。Throwable通常是异常或错误。捕获所有声明的异常时,只剩下错误和运行时异常。在您的情况下,很可能是类未找到的东西。