`
中国爪哇程序员
  • 浏览: 167896 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

try catch finally 关闭流标准的写法

    博客分类:
  • java
 
阅读更多
平常开发中,都知道要在finlly里关闭流,但是有时finlly里代码不当,会引起另外的异常。
以下是看struts2源代码看到的,随手记录下。
有两点注意:
(1)判断流是否为空。
(2)filly里要捕获异常

		InputStream in = null;
		try {
			in = settingsUrl.openStream();
			settings.load(in);
		} catch (IOException e) {
			throw new StrutsException("Could not load " + name + ".properties:"
					+ e, e);
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException io) {
//log
				}
			}
		}
分享到:
评论
2 楼 司马饮之 2014-05-15  
顶一个 
1 楼 beiyeren 2013-01-10  
不错!!!!

相关推荐

    Java如何优雅地关闭资源try-with-resource及其异常抑制

    在 try-with-resource 语法中,如果在关闭资源时抛出异常,那么这个异常将被抑制,直到当前 try-catch 代码块执行完毕后,才会被抛出。这使得我们可以更好地处理异常。 try-with-resource 语法和异常抑制机制是 ...

    Java try-with-resource语法使用解析

    其次,try-with-resource语法糖会在编译时生成一个隐含的finally块,在finally块中调用资源的close方法以关闭资源。 最后,try-with-resource语法糖可以自动关闭资源, 无需开发者手动编写关闭资源的代码。 try-...

    FileDownload.java

    代码用扫描工具扫出来问题,发现是try-catch-finally的另一种写法try-with-resource,发现这种写法优雅,代码量减少1/3(finally里面不用写close)这样就看的不那么臃肿了。因为上传,下载的时候有可能会创建input ...

    浅谈java7增强的try语句关闭资源

    Java 7引入了一项重要的语法改进,即增强的`try`语句,目的是为了更方便地管理和关闭资源,特别是那些需要手动关闭的物理资源,如文件流、数据库连接或网络连接。传统上,我们通常使用`try-catch-finally`结构来确保...

    HibernateDAO的写法

    《深入理解HibernateDAO的写法》 在Java企业级开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而HibernateDAO则是基于Hibernate进行数据访问的对象,是业务逻辑层和持久层之间...

    C#基本写法(适合新手和初学者)

    13. 异常处理:用try...catch...finally结构捕获和处理运行时错误。`throw`关键字用于抛出异常。 九、集合 14. 集合:ArrayList和List用于存储动态数量的元素,Dictionary, TValue>用于键值对存储。 15. 枚举:枚举...

    java 数据库写法(大二)

    总结来说,Java数据库写法涉及到Java的JDBC API,通过`mysql-connector-java.jar` 驱动实现与MySQL的连接,配置信息通常存储在如`DBConfig.java` 类中,实际操作则通过编写类似`TableTest.java` 的类来实现。...

    ASP.Net Post方式获取数据流的一种简单写法

    1. 使用`try-catch-finally`结构确保资源的正确释放,防止内存泄漏等问题。 2. 在实际部署时,应该根据实际业务逻辑和安全要求,对发送的数据进行适当的加密和验证。 3. 对于返回的数据流处理,如果返回的数据量非常...

    如何更优雅的关闭java文本、网络等资源

    3. 在finally块中,需要再次使用try-catch来确保资源关闭,即使在关闭过程中出现异常也不会影响主异常的处理。 传统的代码示例如下: ```java FileInputStream inputStream = null; try { inputStream = new ...

    常见的findbugs解决方案

    例如,错误的写法:try {...} catch {...} finally {...} 正确的写法:try {...} catch {...} finally {if (conn != null) {conn.close();}} 8. OSOS_OPEN_STREAM:对流操作之后,应该在 finally 块中对其正确关闭...

    Java基本语法第三季

    - **异常处理机制**:Java提供了多种方式来处理异常,主要包括`try-catch`结构和`try-catch-finally`结构。 - **try-catch模型**:用于捕捉并处理异常。 ```java try { // 可能抛出异常的代码 } catch ...

    CSharp基本书写规范

    - 使用`try-catch-finally`处理异常,避免在finally块中抛出新的异常。 - 使用具体异常类型而非通用的`Exception`,以便更精确地处理错误。 6. **类型转换**: - 避免使用隐式类型转换,特别是可能导致数据丢失...

    Net与Java常用代码写法对比.pdf

    在异常处理上,Net 使用 `try-catch-finally`,而 Java 也是相同的结构。在循环方面,两者都支持 `for`、`while` 和 `foreach`,但语法细节上有差异。在集合操作中,Net 有 `List<T>`,Java 有 `ArrayList` 和 `...

    Java经典试题.pdf

    `finally`块总是在`try-catch`块结束后执行,无论是否有异常抛出,或者是否遇到`return`语句。所以,尽管`try`块中有`return`,`finally`块仍然会打印出"Finally",因此结果是B。 5. 这道题考察了`try-catch-...

    VB.net 教程,有相关的基本函数写法,VB特点

    VB.NET提供了Try...Catch...Finally结构进行异常处理。当代码块可能出现错误时,可以包裹在Try块内,如果发生异常,程序会跳转到相应的Catch块进行处理,Finally块通常用于释放资源。 **8. 并发与多线程** VB.NET...

    柱状图和饼图的代码写法

    ### 柱状图与饼图的代码写法——基于JFreeChart库 #### 一、JFreeChart简介 JFreeChart是一款免费的Java图表库,它可以用来创建各种类型的图表,如饼图、柱状图(包括普通柱状图及堆栈柱状图)、线图、区域图、...

    CoreJava笔记

    - **try-catch-finally**:异常处理的三个关键部分,try块中可能出现异常的代码,catch块捕获并处理异常,finally块确保资源的正确释放。 - **throw与throws**:throw用于手动抛出异常,throws用于方法声明可能抛...

    java面试宝典2012版

    Java的异常处理机制是通过try、catch、finally、throws和throw关键字实现的。当程序出现异常时,系统会自动生成一个异常对象,然后系统会查找能处理该异常的catch块来处理异常。如果没有处理异常的catch块,则异常...

    JavaScript Promise启示录_.docx

    Promise 的概念起源于 CommonJS 规范,后来被纳入 ES6,成为了现代JavaScript开发中的标准工具。在高版本的Chrome和Firefox浏览器中,Promise 已经被原生支持。 Promise 有三种状态:等待(pending)、已完成...

Global site tag (gtag.js) - Google Analytics