我正在挑釁一個CSS文件加載錯誤的內部porpuses,看看它是否處理這樣的問題。飛碟 - 無法捕獲IOException獲取流關閉
我擁有的代碼是這樣的,當它到達renderer.setDocument()(來自ITextRenderer類的一個方法)時,它會拋出一個無法克服的模糊,我們需要捕捉它,甚至在這種情況下它仍然繼續渲染器.layout()然後到{}塊。
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的:流關閉 [ERR]在java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:134) [ERR]在java.io.BufferedInputStream中。 read1(BufferedInputStream.java:256) [err] at java.io.BufferedInputStream.read(BufferedInputStream.java:317) [err] at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) [錯誤]在sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) [err] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) [err] at java .io.InputStreamReader.read(InputStreamReader.java:167) [err] at 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) [err] at 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] at osplus.mcp.frontend.servlet.RendererFilter.handleReport(RendererFilter.java:1265) [err] at osplus.mcp.frontend.servlet.RendererFilter.doFilter(RendererFilter.java:178) [err] at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194) [錯誤]在[內部類]
任何人都可以請幫助我瞭解我怎麼能夠發現這種異常?
謝謝。
問候
嗨@ergonaut,謝謝你的幫助。問題是我們的代碼在一個try catch代碼塊內,但即使如此,在你的catch中,代碼不會進入catch塊,我不知道爲什麼。在我的下面的帖子中,我會放一些我們正在製作的代碼。 –