异常
来源:互联网 发布:java前端和后端的区别 编辑:程序博客网 时间:2024/05/01 04:01
1.什么是异常
异常通常指,代码可能在编译时没有错误,可运行时会出现异常。也可能是程序出现无法预料的异常。java中大量的异常类都继承自java.lang.Throwable类
Throwable类的继承体系:
2.Throwable的子类有Exception(异常)和Error(错误),异常分为编译时异常和运行时异常
RuntimeException: NullPointerException(空指针异常),ClassNotFoundException(指定类不存在),ArrayIndexOutOfBoundsException(数组下标越界),
IndexOutOfBoundsException(索引越界),ArithmeticException(算术异常)
3.异常的处理机制—异常捕获try…catch和finally
try{
//程序代码块
}catch(ExceptionType(Exception类及其子类) e){
//处理
}
一个try可对应多个catch,小的在前,大的在后,Exception是所有异常的子类,最后写。单独的try...finally也可以
finally代码块:无论是否发生异常都要执行,一般用于释放系统资源
4.throws关键字声明抛出异常,写在方法声明的后面,异常抛给了方法调用者。如果父类有多个异常抛出,则子类覆盖的方法中不能抛出新的异常。main函数抛出
异常是抛给Java运行环境。如果程序发生异常没有处理,程序将非正常终止。
如果每个方法都是简单的抛出异常,那么在方法调用方法的多层嵌套调用中,Java虚拟机会从出现异常的方法代码块中往回找,直到找到处理该异常的代码块为
止。然后将异常交给相应的catch语句处理。如果Java虚拟机追溯到方法调用栈最底部main()方法时,如果仍然没有找到处理异常的代码块,将按照下面的步骤处
理:
第一、调用异常的对象的printStackTrace()方法,打印方法调用栈的异常信息。
第二、如果出现异常的线程为主线程,则整个程序运行终止;如果非主线程,则终止该线程,其他线程继续运行。
5.编译时异常:Java编译器会对其进行检查,如果出现异常就必须处理,否则编译不能通过
处理方式:(1)使用try…catch语句对异常进行捕获
(2)使用throws声明抛出异常,调用者对其处理
6.运行时异常:Java编译器不会对其进行检查,可以通过编译。一般由程序中的逻辑错误引起
7.自定义异常:用户自己定义的,必须继承自Exception或其子类
创建Exception或者RuntimeException的子类即可得到一个自定义的异常类
public class MyException extends Exception{
public MyException(){}
public MyException(String smg){
super(smg);
}
}
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- React Native控件之ListView
- [BZOJ1048][HAOI2007]分割矩阵(数学相关+记搜)
- Linux Shell 之 对文件中的行、单词、字符进行迭代
- 乱码解决
- uvc的usb摄像头笔记
- 异常
- Python入门:学会创建并调用函数
- Cordova和 PhoneGap的关系:
- IDEA Mybatis-plugin破解教程
- Android.mk----------------3
- Unit2.10 文档
- 过滤器编程步骤
- Linux下的僵尸进程
- 【微服务】RxJava与SpringMVC