I want to catch and ignore and ArrayIndexOutOfBoundsException error (basically it’s not something I have control over, so I need my program to keep chugging along).
However my try/catch pair doesn’t seem to catch the exception and ignore it. Hopefully you can pick out what I am doing wrong.
The exception occurs at this line
content = extractor.getTextFromPage(page);
Here is my code:
for(int page=1;page<=noPages;page++){
try{
System.out.println(page);
content = extractor.getTextFromPage(page);
}
}
catch (ArrayIndexOutOfBoundsException e){
System.out.println("This page can't be read");
}
}
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Invalid index: 02
at com.lowagie.text.pdf.CMapAwareDocumentFont.decodeSingleCID(Unknown Source)
at com.lowagie.text.pdf.CMapAwareDocumentFont.decode(Unknown Source)
at com.lowagie.text.pdf.parser.PdfContentStreamProcessor.decode(Unknown Source)
at com.lowagie.text.pdf.parser.PdfContentStreamProcessor.displayPdfString(Unknown Source)
at com.lowagie.text.pdf.parser.PdfContentStreamProcessor$ShowText.invoke(Unknown Source)
at com.lowagie.text.pdf.parser.PdfContentStreamProcessor.invokeOperator(Unknown Source)
at com.lowagie.text.pdf.parser.PdfContentStreamProcessor.processContent(Unknown Source)
at com.lowagie.text.pdf.parser.PdfTextExtractor.getTextFromPage(Unknown Source)
at com.pdfextractor.main.Extractor.main(Extractor.java:64)
edit: I have put the try/catch within the for loop
and added the stack trace
and removed index=1
Is the ArrayIndexOutOfBoundsException that you put in the catch from the same package as the one being thrown? i.e. java.lang
Or perhaps catch throwable to see if that even works.