trycatch自动关闭流(try catch 关闭流)

http://www.itjxue.com  2023-01-25 00:56  来源:未知  点击次数: 

java—try catch语句里的参数要怎么理解?

这是JDK1.7版本后,对于流的自动关闭写法。

在JDK1.7以前,try 是不支持括号里这种写法,但try中的代码执行完毕后,需要对各种流进行关闭,防止内存溢出。但这种写法不优美,因为简单一个try中逻辑,会因为关闭流而显得多出很多臃肿代码。

在JDK1.7版本后,就解决了这个问题,把只要把变量写在try的括号中,就可以自动关闭,而不用自己再去写关闭流的代码了。这样不但节省了写代码的时间,代码也看上去好看多了。

我有一篇博客就专门介绍过这个问题,你可以看看:网页链接

记得采纳哦!

java中try catch的要注意的规则

一:使用try?catch的场合

??如果不使用这种try结构时,代码报错退出就无法继续执行。有的代码出错就应该退出,有的出错尚可以补救,就不应该退出。对于这种出错不应该退出的就需要使用这种结构,在catch中进行补救。

二:使用try?catch的规则

a.尽量不要将try…catch写在循环中

b.如果能捕获多个异常,那么先捕获小异常,在捕获大异常

????????try?{

//?....

}?catch?(RuntimeException?e)?{//小异常

//处理1

}?catch?(Exception?e)?{//中异常

//处理2

}?catch?(Throwable?t)?{//大异常

//处理3

}

c.try{ .....}代码块里面的代码尽量的少,避免出现大段大段的代码

d.catch( ) 尽量避免使用万能代码捕获所有的异常,比如

try?{

????//代码

}?catch?(Throwable?t)?{//这样写就捕获了所有异常,不便于区分处理

????????????????????????//Throwable?是错误和异常的父类

}

e.适当配合finally代码块

finally可以没有,有的话只能有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。finally总是要执行,这以可以在异常处理最后做一些清理工作。如关闭IO流等

????????????????try?{

????//IO流代码

}?catch?(IOException?e)?{

}finally?{

ioinput.close();//流的关闭

}

java中catch(EOFException e){ try{ in.close();}什么意思?

一般是这样写的try{ }catch(){ },try里面放的是执行代码,如果在执行的时候出现问题,由catch进行捕获,捕获后可以分两种情况处理,一种是执行catch里的语句,可以自己写,也可以调用现成的,另一种是不作任何处理,直接抛出。问题中的try应该是在catch中执行的,.close()是调用的方法,应该是关闭什么,而如果抛出EOFException异常,则表明程序已经在正常运行结束了,e只是一个普通的参数,所以我想这句话应该是如果程序运行结束,则关闭什么。

连续两个try-catch-怎么执行的?if (reader != null) { reader.close(); // 关闭流,为何关闭流啊??

1. 连续两个try-catch-怎么执行的?

顺序执行。

2. 为什么要关闭流?

因为流操作是调用底层操作系统的参数,想操作系统本身申请了资源,调用完成后必须释放这些资源,否则会导致内存泄漏。

(责任编辑:IT教学网)

更多

推荐网页文字特效文章