关于异常的处理
07版导入的话会出现OfficeXmlFileException异常,我将07版的解析方法封装成一个函数放在异常之下,应该会执行其下的代码,正常导入07版,为什么我开断点调试,却发现我放入07版的Word却出现的Exception的异常,执行的是Exception下的代码,,,难道,Exception捕获能力更强吗?
0
收起
正在回答 回答被采纳积分+1
5回答
MySweeties
2019-02-19 14:41:14
public ImportWordResultDto imp(ImportWordParamDto dto) { ImportWordResultDto result = new ImportWordResultDto(); result.setTitle(dto.getTitle()); HWPFDocument doc = null; try { doc = new HWPFDocument(dto.getWord().getInputStream()); result.setContent(doc.getDocumentText().replace("\r", "<br/>")); return result; } catch (OfficeXmlFileException oe) { result.setMsg("这是一个07版的Word"); //return ImportWordResultDto(dto, result); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("这可能不是一个Word"); return result; } finally { if(null != doc) { try { doc.close(); return result; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } XWPFDocument docx = null; try { docx = new XWPFDocument(dto.getWord().getInputStream()); List<XWPFParagraph> paragraphList = docx.getParagraphs(); StringBuilder content = new StringBuilder(); for(int i = 0; i < paragraphList.size(); i ++) { if(i != 0) { content.append("<br/>"); } content.append(paragraphList.get(i).getText()); } result.setContent(content.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if(null != docx) { try { docx.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return result; } /* public ImportWordResultDto imp07(ImportWordParamDto dto, ImportWordResultDto result) { XWPFDocument docx = null; try { docx = new XWPFDocument(dto.getWord().getInputStream()); List<XWPFParagraph> paragraphList = docx.getParagraphs(); StringBuilder content = new StringBuilder(); for(int i = 0; i < paragraphList.size(); i ++) { if(i != 0) { content.append("<br/>"); } content.append(paragraphList.get(i).getText()); } result.setContent(content.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if(null != docx) { try { docx.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return result; } */
以上是WordService的代码内容?请老师解答,运行导入07版后,得到的是
MySweeties
2019-02-18 22:36:57
按照视频中所写的,在OfficeXmlFileException的异常下不加return,会继续执行07版解析的代码,但是我实际调试中,07版的总是失败,它直接被Exception捕获了,根本没往下执行了
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星