异常处理机制

编程入门 行业动态 更新时间:2024-10-05 23:20:35

<a href=https://www.elefans.com/category/jswz/34/1771210.html style=异常处理机制"/>

异常处理机制

java的异常处理机制try{}catch,注意try不能单独使用,后面需要紧接着catch将异常抛出。

try{
可能重写异常的代码片段,
JVM执行到这里时如果发生异常就会实例化一个对应的异常实例,并将程序执行过程设置进去,
然后将异常抛出
如:
String line=null;
System.out.println(line.length);//错误代码}catch(NullPinterExceptione e){//去捕获对应的异常}catch(NullPointerException ||Exception){//可以同时捕获多异常    也可以直接用异常超类扩大范围,避免因为捕获异常而中断程序的运行}

异常机制中的fainlly块

finally块是异常处理机制的最后一块,它可以跟着try之后或者最后的catch后面。

finally可以保证只要程序执行到try语句块中。无论try中是否程序异常,finally最终都会必定执行

通常我们将释放这类操作放在finall中确保运行,例如Io操作后的最终class()调用

public class File1 {public static void main(String[] args)  {FileOutputStream fos=null;try {fos.write(1);fos.close();} catch (Exception e) {e.printStackTrace();}finally {if (fos!=null){try {fos.close();} catch (IOException e) {e.printStackTrace();}}}}
}

还有个更简洁的版本

public class File2 {/**jdk7之后推出了一个自动关闭特性但只有编译器认可,编译器读取完后,再帮你转回原来的样子传给java虚拟机在异常处理机制中用用跟精简的写法完成IO的关闭特性**/public static void main(String[] args) {try (//里面有finally的属性,而且还帮你加close方法FileOutputStream fos=new FileOutputStream("XXX");//注意的是不是所有东西都可以放进去,这个可以因为继承了//OutputStream的类和AutoClose接口(此接口可以自动调用close方法)){fos.write(3);} catch (Exception e) {e.printStackTrace();}}
}

finally好处:

 try {//String line="abc";String line=null;System.out.println(line.length());System.out.println("aaaaaaaaa");return;//如果前面代码报错那么就不执行return,//走catchd代码块}catch (Exception e){System.out.println("出错了");}finally {System.out.println("AAAAAAAAAA");//一定先执行finally的代码块,再执行return;结束方法}}
}

更多推荐

异常处理机制

本文发布于:2024-03-08 23:02:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722748.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:异常   机制

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!