在ApachePDFBox中,java跳过catch子句直接跳到finally

在ApachePDFBox中,java跳过catch子句直接跳到finally,java,apache,try-catch,pdfbox,finally,Java,Apache,Try Catch,Pdfbox,Finally,这一次我双手插在头发里 我使用ApachePDFBox,因为我想在JAVA中逐行读取pdf文件,并在以后处理内容。但是我有以下问题。。 我在一个单独的java程序(在main方法中)中使用了下面的代码,它在那里工作得很好。然而,当我在tomcat服务器小程序中与quartz调度器结合使用时,出现了一些问题,我不知道为什么。请记住,我从正在运行的独立测试程序复制并粘贴了下面的行到我自己的更大的项目中,所以它是完全相同的代码。然而,在我更大的项目中,程序运行到字符串x1=。。我放置断点的行。当我试图

这一次我双手插在头发里

我使用ApachePDFBox,因为我想在JAVA中逐行读取pdf文件,并在以后处理内容。但是我有以下问题。。 我在一个单独的java程序(在main方法中)中使用了下面的代码,它在那里工作得很好。然而,当我在tomcat服务器小程序中与quartz调度器结合使用时,出现了一些问题,我不知道为什么。请记住,我从正在运行的独立测试程序复制并粘贴了下面的行到我自己的更大的项目中,所以它是完全相同的代码。然而,在我更大的项目中,程序运行到字符串x1=。。我放置断点的行。当我试图跳过它时,它不会给出任何错误、控制台输出或任何东西,并跳过catch子句直接跳到finally。我在catch子句中设置了断点,但它们没有被触发

这是我的代码:

    PDFTextStripper stripper;
    PDDocument doc = null;      
    try{
      doc = PDDocument.load("00026614_F_21Jan2013-18Feb2013.pdf");
      stripper = new PDFTextStripper();
      String x1= stripper.getText(doc);    //SOMETHING GOES WRONG HERE
      //break up the file content returned as a string into individual lines
      List<String> ans= Arrays.asList(x1.split("\r\n"));//THIS IS NEVER REACHED
    }
    catch(Exception e){
        e.printStackTrace();    //THIS IS NEVER REACHED EITHER
    }
    finally{
       if(doc!=null) //IT GOES FROM STRING X1 STRAIGHT TO HERE.
       doc.close();
    }
现在困扰我的是,我如何才能找出那个电话里出了什么问题?就像我说的,如果我把代码放在一个单独的java程序中,它运行得很好。。但我无法获得任何错误输出或捕获任何异常(我正在尝试捕获异常,即使它应该给出IOException,是的,我也尝试过)


我希望你们中的任何人都知道如何处理这个问题。善意的问候

看起来好像有人已经回答了这个问题,但是为错误添加了一个陷阱就解决了我遇到的类似问题

我在异常的“catch”之后添加了这个“catch”(表示错误):

catch (Error err){
    err.printStackTrace();
    throw (err);
}

我可以向您保证,java没有崩溃,也没有“直接跳到最后”。如果未调用catch子句,则不会引发该异常。仅用于调试,您可以尝试捕获
Throwable
而不是
exception
,以查看是否得到任何结果。认为这里有一个
错误
不是一个
异常
,但仍然可以丢弃。它很可能是一个
错误
被抛出,而不是一个
异常
。您可以尝试将
catch
块从
catch(异常e){
更改为
catch(错误e){
。这很可能是
NoClassDefFoundError
NoSuchMethodError
错误我无法将此问题的状态更改为“已解决”但事实上它现在已经解决了!感谢各位,你们当时说得对!我用JAVA编程已经有几年了,所以我觉得异常是你能捕捉到的最高的东西。我将异常更改为错误,这确实导致了NoClassDefFoundError。原因是它在独立JAVA应用程序上工作,而不是在m中工作tomcat环境是因为PDFBox依赖于“ApacheFontbox jar”,我在JAVA构建路径中有它,但在tomcat库中没有。这解决了问题。
catch (Error err){
    err.printStackTrace();
    throw (err);
}