java中try语句,java try()
目录
带参数的try(){}语法含义最简形式为需要注意的是对try(){}的简单理解好比往文件输出流写东西这样写很难受,可以进行优化
带参数的try(){}语法含义
带资源的尝试语句(使用资源尝试)
最简形式为
尝试(资源res=xxx)//可指定多个资源{使用资源}尝试块退出时,会自动调用res.close()方法,关闭资源。
PS:在coreJava第9版的第一卷的486页有解释。
挺好用的语法,不用写一大堆最后来关闭资源,所有实现可关闭的的类声明都可以写在里面,最常见于流操作,插座操作,新版的客户端也可以;
需要注意的是
尝试()的括号中可以写多行声明,每个声明的变量类型都必须是可关闭的的子类,用分号隔开。楼上说不能关两个流的落伍了
补充一下:在没有这个语法之前,流操作一般是这样写的:
输入流为=nullOutputStream os=null尝试{ //.} catch (IOException e) { //.}最后{试试{ if(os!=null){ OS。close();}如果(是!=null){是。close();} } catch (IOException e2) { //.}} 而现在你可以这样写:
try(InputStream is=新文件InputStream( . )));输出流OS=新文件输出流( . )));){ //.}catch (IOException e) { //.}生活一下就美好了
对try(){}的简单理解
以前使用试着抓住最后都是捕获异常,然后流关闭等等,代码总是这样的:
好比往FileOutputStream写东西
@测试公共void test2()抛出io异常{ File File=new File( e ://Test );如果(!文件。exists()){ file。创建新文件();}文件输出流file output stream=新文件输出流(file);试试{ System.out.println(做点什么.);fileOutputStream.write(aaa ).getBytes());文件输出流。flush();} catch(异常e){ system。出去。println( do . );}最后{文件输出流。close();} }
这样写很难受,可以进行优化
将文件输出流文件输出流=新文件输出流(文件)放到尝试()里面,也可以放多个
@Test public void test2()抛出io异常{ File File=new File( e ://Test );如果(!文件。exists()){ file。创建新文件();} try(文件输出流文件输出流=新文件输出流(文件);){ System.out.println(做点什么.);fileOutputStream.write(aaa ).getBytes());文件输出流。flush();} catch(异常e){ system。出去。println( do . );} }试试()里每个声明的变量类型都必须是可关闭的的子类,就一个关闭方法
相当于系统自动将关闭操作放到了最后里面而不需要我们自己写了,很很好
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。