我正在引发内部 porpuses 的 CSS 文件加载错误,以查看它是否处理这样的问题。
我的代码是这样的,当它到达来自 ITextRenderer 类的方法 renderer.setDocument() 时,它会抛出一个无法捕获的异常,我们需要捕获它,即使在这种情况下它也会继续 renderer.layout()然后到 finally{} 块。
private ITextRenderer renderPdfByRenderer(
final ITextRenderer renderer,
...
{
...
try {
...
org.w3c.dom.Document xhtmlContent = createDocument(contentReader);
...
renderer.setDocument(xhtmlContent, FacesContextHelper.getRequest().getRequestURL().toString());
...
renderer.layout();
....
} catch (final SAXException e) {
throw getExceptionOnRender(e);
} catch (final ParserConfigurationException e) {
throw getExceptionOnRender(e);
} catch (final DocumentException e) {
throw getExceptionOnRender(e);
} catch (IOException e) {
e.printStackTrace();
throw getExceptionOnRender(e);
} catch (final ServletException e) {
throw getExceptionOnRender(e);
}
finally{
...
}
}
[err] java.io.IOException:流在 java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:134) 处关闭 [err] [err] 在 java.io.BufferedInputStream.read1(BufferedInputStream.java:256) [err]在 java.io.BufferedInputStream.read(BufferedInputStream.java:317) [err] 在 sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) [err] 在 sun.nio.cs.StreamDecoder.implRead(StreamDecoder .java:306) [err] 在 sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) [err] 在 java.io.InputStreamReader.read(InputStreamReader.java:167) [err] 在 org.xhtmlrenderer .css.parser.Lexer.zzRefill(Lexer.java:1634) [err] at org.xhtmlrenderer.css.parser.Lexer.yylex(Lexer.java:1865) [err] at org.xhtmlrenderer.css.parser.CSSParser.next(CSSParser.java:1807) [err] at org.xhtmlrenderer.css.parser.CSSParser.la(CSSParser.java:1819) [err] at org.xhtmlrenderer.css.parser.CSSParser.stylesheet(CSSParser.java:159) [err] at org.xhtmlrenderer.css.parser.CSSParser.parseStylesheet(CSSParser.java:89) [err] at org.xhtmlrenderer.context。 StylesheetFactoryImpl.parse(StylesheetFactoryImpl.java:78) [err] at org.xhtmlrenderer.context.StylesheetFactoryImpl.parse(StylesheetFactoryImpl.java:95) [err] at org.xhtmlrenderer.context.StylesheetFactoryImpl.getStylesheet(StylesheetFactoryImpl.java:174) [错误] 在 org.xhtmlrenderer.context.StyleReference.readAndParseAll(StyleReference.java:123) [err] at org.xhtmlrenderer.context.StyleReference.setDocumentContext(StyleReference.java:111) [err] at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:182) [err] at org.xhtmlrenderer。 pdf.ITextRenderer.setDocument(ITextRenderer.java:145) [err] at osplus.mcp.frontend.servlet.RendererFilter.renderPdfByRenderer(RendererFilter.java:750) [err] at osplus.mcp.frontend.servlet.RendererFilter.renderPdf( RendererFilter.java:697) [err] 在 osplus.mcp.frontend.servlet.RendererFilter.handleReport(RendererFilter.java:1265) [err] 在 osplus.mcp.frontend.servlet.RendererFilter.doFilter(RendererFilter.java:178) [错误] 在 com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194) [错误] 在 [内部类]
谁能帮我理解我怎样才能捕捉到这个异常?
谢谢你。
问候