- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个实用方法,可以读取 xml 文件并转换为字符串,如下所示:
public static String readFile(String xmlFileName) throws IOException, DocumentException{
String xmlMsg = null;
Resource resource = null;
InputStream inputStream = null;
try{
resource = new ClassPathResource(xmlFileName);
inputStream = resource.getInputStream();
SAXReader reader = new SAXReader();
Document doc = reader.read( inputStream );
xmlMsg = doc.asXML();
}finally{
if(inputStream != null){
inputStream.close();
}
}
return xmlMsg;
}
如果我在上面的代码中捕获 DocumentException 并重新抛出它,如下所示,这是一个坏主意吗:
public static String readFile(String xmlFileName) throws IOException, DocumentException{
String xmlMsg = null;
Resource resource = null;
InputStream inputStream = null;
try{
resource = new ClassPathResource(xmlFileName);
inputStream = resource.getInputStream();
SAXReader reader = new SAXReader();
Document doc = reader.read( inputStream );
xmlMsg = doc.asXML();
}catch (DocumentException e){
throw new DocumentException("some message");
}finally{
if(inputStream != null){
inputStream.close();
}
}
return xmlMsg;
}
那么,将处理 DocumentException 的责任留给调用者是不是一个坏主意?
最佳答案
不,让调用者处理异常
就可以了 - throw early catch late .
我遇到的问题是:
}catch (DocumentException e){
throw new DocumentException("some message");
为什么要捕获 (DocumentException e)
,然后抛出一个删除所有有用信息的新实例?您可以一开始就不捕获它,然后让它渗透到能够处理它的人那里。
此外,请使用 Java 7 try-with-resources 而不是 finally
。所以,你的代码应该是:
public static String readFile(String xmlFileName) throws IOException, DocumentException {
try (final InputStream is = new ClassPathResource(xmlFileName).getInputStream()) {
final SAXReader reader = new SAXReader();
final Document doc = reader.read(inputStream);
return doc.asXML();
}
}
我已经删除了声明为 null
的变量,然后重新赋值,我讨厌这种做法,许多其他 Java 开发人员也是如此 - 摆脱这种习惯。 在需要时声明它们并立即分配它们。在垃圾收集语言中,最小作用域原则非常重要。
由于某种原因,我还将其更改为直接返回
,而不是存储该值。
关于java - 捕获 DocumentException 是一个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24691511/
我有一个实用方法,可以读取 xml 文件并转换为字符串,如下所示: public static String readFile(String xmlFileName) throws IOExcepti
大家早上好, 我有允许我从 xml 文件创建 excel 文件的 java 代码。但是它无法正确创建文件,我有这个异常,我不明白它的含义: Exception in thread "main" jav
我正在尝试调试(Eclipse 上的 F11)我继承的 Java GUI 应用程序,但虽然该应用程序在 Eclipse IDE 之外运行良好(减去我需要应用的微小修复),但它在从 Eclipse 启动
在过去的几个月里,我生成了数千个字体为 Courier 的 pdf(在开发时在 Windows 7 上,在测试和生产时在 OpenSuse 上)。 现在我的目标是使用 Arial。所以我在我们的属性文
我编写了一些代码来学习 hibernate 。它抛出了下面的错误。我如何找出问题所在并加以解决? dom4j 听起来像是一个 XML 问题。 hibernate.cfg.xml 是问题所在? Exce
我正在使用 iText 5.5.5 for Java,我想创建带有外部签名的签名 PDF,如下所示: 获取需要签名的 PDF 文档并创建带有空签名的 PDF,并提供要由外部签名机制签名的 BASE64
我是 hibernate 的新手。我正在开发一个 struts 应用程序,我想在其中集成 hibernate。我正在使用 SQL Server 2008 R2 作为数据库。我已经配置了我的 hiber
我正在尝试通过以下 servlet 生成动态 PDF 文件。 import java.io.*; import javax.servlet.ServletException; import javax
我创建了一个 jasper 报告,现在我需要将该报告导出为 pdf 格式。这是我的代码。 // compiles jrxml JasperCompileManager.
我对 Hibernate 不太熟悉。任何人都可以帮助我解决我在代码中遇到的错误。 我正在使用 Eclipse Helios、Hibernate 3 和 Java 6。我通过逆向工程使用 Jboss H
解析有效的 XML 文件时 private static boolean isXml(FileReader f) { try { saxReader.read(f);
我更换了电脑,并重新安装了所有版本:tomcat 8 和 6、netbeans 8、jdk 1.7、hibernate 4.3.4,但是当我运行 Web 应用程序时,出现此错误。过去使用我的旧电脑时,
我正在将我的应用程序部署到 Tomcat 6.0.20。 应用程序使用 Hibernate 作为 Web 层的 ORM、Spring 和 JSF。 我还从 main() 方法制作了简单的运行器来测试
我有一个使用 hibernate > 4 的 gradle 项目。如果我在 Apache tomcat 中运行我的 war 文件,我不会收到任何错误。但是当我在 Wildfly 8.2 中部署它时,出
我有 war 文件的工作副本,它在 Windows 中运行良好.. 现在,当我将该 war 文件部署到 linux + tomcat 中时,它给我以下堆栈跟踪: 2009-11-23 17:06:08
我是一名优秀的程序员,十分优秀!