黑马程序员_java异常
来源:互联网 发布:破壁机 原汁机 知乎 编辑:程序博客网 时间:2024/05/21 22:51
异常:
异常概述:就是程序在运行时出现的不正常情况,比如除0溢出,文件找不到,数组角标越界等,java通过面向对象的方式来处理异常。
由于问题出现各式各样,对问题进行分类,并不断向上抽取共性内容,如:问题的名称,问题出现的位置,于是就形成了异常体系
异常体系
Throwable:可抛出的。
Error:错误,严重问题,处理不了,基本没救了,要修改代码。
Exception:异常,可以有针对性的处理方式。
RuntimeException 运行期异常,不需要处理,需要修改代码
非RuntimeException 编译时异常,需要处理有两种方式
异常的两种处理方式:
方式一:将异常捕获处理
基本格式:
try
{
可能发生异常的代码;
}
catch(异常类名 变量名)
{
异常的处理代码;
}
finally{
必须要执行的代码
释放资源的代码;
}
final,finally,finalize的区别。
final 是一个关键字可以修饰类,方法,变量
修饰的类不能被继承
修饰的方法不能被覆盖
修饰的变量是常量。
finally
它是异常处理的一部分,finally里面的代码都会被执行
但是finally也有执行不到的情况比如System.exit(0);退出JVM
finalize
它是Object类中垃圾回收器的方法
其他格式:
try{}catch(){}
try{}catch(){}catch(){}...
try{}catch(){}....catch(){}finally{}
try{}finally{}
针对多个异常,写一个try的代码,catch里异常类名会不会有顺序问题?
异常是平级关系的话,catch无顺序
异常是具有子父类关系的时候,父类一定要放在最后。
注:功能抛出异常,用try处理,抛出几个异常就用几个catch处理
异常处理中JDK1.7的新特性
理解异常在JDK1.7之后的新特性
格式 :
catch (异常1 | 异常2|异常3...变量名){}
一个catch中可以用或链接多个异常类。
注意:这些异常必须是平级关系。和 try{}catch(){}catch(){}...的不同的地方是,JDK1.7的这种方式必须是平级关系,不能有子父关系。
方式二:
在方法上抛出异常
修饰符 返回值类型 方法名(参数列表) throws 异常类的名字 ,其他异常,其他异常2(多个异常用逗号隔开)
{
代码
}
throw 和throws的区别
throws 抛出的是异常类,后面可以跟多个用逗号隔开,
throw 抛出的是异常对象,用在函数内,
用throw抛出了编译时期异常,方法上面必须用throws抛出
。
用throw抛出了运行时期异常,方法上面可以不用throws抛出
自定义异常:就是定义一个类去继承Exception或RuntimeExcepton.
常见的异常:
NullPointerException空指针异常
IndexOutOfBounds集合越界异常
ClassCastException 类型转换异常
StringIndexOutOfBounds字符串越界异常
ArrayIndexOutOfBound数组角标越界异常
FileNotFoundException文件找不到异常
- 黑马程序员_Java异常
- 黑马程序员_Java异常
- 黑马程序员_JAVA异常
- 黑马程序员_java异常
- 黑马程序员_Java异常
- 黑马程序员_JAVA:异常
- 黑马程序员_java异常
- 黑马程序员_java基础_java异常笔记
- 黑马程序员_Java异常总结
- 黑马程序员_java异常总结
- 黑马程序员_java中的异常
- 黑马程序员_java异常处理
- 黑马程序员_java异常概述
- 黑马程序员_java异常机制
- 黑马程序员_java异常体系
- 黑马程序员_java异常体系
- 黑马程序员_java中的异常
- 黑马程序员_java异常机制
- 【OpenGL】Shader概述
- 029.For Error 死循环
- 黑马52期最新android视频完整高清不加密
- Extjs首日工作总结
- 左连接右连接 left join right join
- 黑马程序员_java异常
- 030.For 循环代替 While 循环
- android arm
- 返回键当Home键使用方法
- PE 修改 NMI PIN 为普通中断脚后生成的代码有问题
- 安卓开发——关于图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)
- HDU 4632 Palindrome subsequence(区间DP 回文子串的个数)
- opencv获取摄像头的个数及名字
- iOS block的用法