Java中Exception知识点
来源:互联网 发布:工商局网络监管 编辑:程序博客网 时间:2024/05/16 19:48
Exception
- 不论代码块是否处于try或者catch块中,只要执行该代码块时出现异常,系统都会自动生成一个异常对象
- try块里声明的变量是局部变量
- try和catch块后的花括号不可省略
- 捕获多种异常时,多种异常类型之间用竖线|隔开
- 捕获多种异常时,异常变量有隐式的final修饰,因此不能对异常变量进行赋值
- 如果在异常处理代码中使用System.exit(1)退出虚拟机,则finally块不会执行
- 除非退出了虚拟机,否则finally语句块一定会执行
- Java7中允许在try后加圆括号,用于声明和初始化一个或多个资源(资源指必须在程序结束时显式关闭的资源(网络连接,数据库等)),try语句在结束后会自动关闭该资源
- 使用throws时,子类抛出异常类型应是父类抛出异常的子类或相同,子类方法声明抛出的异常不允许比父类方法声明抛出的异常多
- throw语句抛出的不是异常类,而是异常实例,而且每次只能抛出一个异常实例
- try块可以直接和finally单独使用,无需catch块
- try语句里异常之后的代码将不会被执行
- 如果在try语句之前执行了return,finally语句块不会被执行
只要异常被捕获,则catch块后的语句可以正常执行,如果异常没有被捕获,则虚拟机退出,异常语句后面的语句不会被执行
当try和finally语句中包含return语句返回值时:
- 如果try里有return而finally语句中没有return时,会将return返回的值存入一个临时值中,等finally语句执行完成后再将该值返回(没有异常发生,此时会返回8,因为参数直接通过值传递,return返回的值为8)
public class ReturnTest { public static void main(String[] args) { int result = 0; result = fn(); System.out.println("result:" + result); } public static int fn() { int a = 0; try { a = 8; return a; } catch (Exception e) { a = 9; return a; } finally { a = 10; } //return a;//编译报错,该语句不可达 }}
-
- 如果在finally语句中也有return语句,则会以最后一个执行的return的值为返回值(此时return返回值的临时存储位置的值会被改变,此时返回9)
public class ReturnTest { public static void main(String[] args) { int result = 0; result = fn(); System.out.println("result:" + result); } public static int fn() { int a = 0; try { a = 8; return a; } catch (Exception e) { a = 9; return a; } finally { a = 10; return a; } }}
0 0
- Java中Exception知识点
- 【java知识点异常】Java 异常Exception e中e的getMessage()和toString()方法的区别
- java中Exception总结
- java中Exception类
- Java异常(Exception)小例子&知识点【Java学习笔记】
- Java中Exception的处理
- Java中Exception的处理
- Java中Exception的种类
- Java中Exception的种类
- Java中Exception的种类
- JAVA中常见的Exception
- Java中自定义Exception异常
- Java中Exception的种类
- java中error和exception
- Java中Exception的种类
- java中Exception和RuntimeException
- java 异常知识点总结 error exception throw throws
- java中几个知识点
- zzuliOJ 1894: 985的方格难题 【dp】
- JAVA RMI远程调用
- 撤销git工作空间中的修改
- UnityBugList
- hdu 4512 吉哥系列故事——完美队形I (lics)
- Java中Exception知识点
- mysql性能优化之max,count优化
- JAVA IO操作详解
- C++模板(一)
- javascript闭包浅谈
- LeetCode进阶之路(Combination Sum)
- codeforces 560E Lucas定理+dp
- HDOJ 1240 Asteroids!(三维BFS)
- zabbix系列(三)zabbix3.0.4微信告警配置详解