异常
1. 异常
- 异常是程序在执⾏过程中出现的错误时或不能显⽰正确的逻辑结果所产⽣的对象,即运⾏时错误
- 异常的处理机制⽤到的5个关键字
- try: 监视⼀段代码在执⾏时是否会发⽣异常
- catch: 如果发⽣了异常则捕获异常对象并处理
- finally:在程序结束前最后执⾏的代码(出不出不异常都执⾏)
- throw: 显⽰地抛出指定的异常对象
- throws:声明抛出的异常对象
- 常⽤的异常处理⽅式
- try{ //处理业务逻辑代码} catch(异常类型 异常对象引⽤){ //处理异常逻辑代码}
- 说明总结
-
在没有发⽣异常时不会执⾏catch语句块
-
在发⽣异常时,捕获的异常对象与catch定义的异常类型⼀致时会执⾏catch语句块
-
在发⽣异常时,捕获的异常对象与catch定义的异常类型不⼀致时不会执⾏catch语句块
-
finally:⽆论是否发⽣异常,都会执⾏的代码,即在退出程序之前最终执⾏的代码
-
-
常见的⼏种系统定义的异常类型
- NullPointerException 空指针异常,没有通过对象调⽤成员
- ArrayIndexOutOfBoundsException 数组下标越界异常
- ArithmeticException 算术异常,除数为0导致
- InputMismatchException 输⼊类型不匹配
- ClassCastException 类型转换异常
- e.getMessage() 这个⽅法获取异常的信息
-
throw 显⽰地抛出指定的异常对象
-
return 退出程序(执⾏完finally再退出),System.exit(0)退出jvm,0表⽰没有错误
-
声明异常主要发⽣在两个⽅法之间的调⽤来决定谁处理异常的问题
-
关键字throw⽤于在⽅法内部显⽰创建并抛出指定类型的异常对象
-
关键字throws ⽤于声明⽅法可能有异常发⽣,需要调⽤⽅进⾏处理
-
e.printStackTrace() 主要⽤于跟踪异常发⽣的轨迹和类型
-
-
⾃定义异常
-
定义类继承Exception或其任⼀⼦类
-
编写构造⽅法,调⽤⽗类的构造⽅法
- 抛出⾃定义的异常对象,throw new XXXException("异常信息");
-
处理⾃定义的异常对象,throws 或 try-catch
-