异常机制
- 处理程序运行过程中的异常
异常类
java中有许多异常类,例如NullPointException,ArrayIndexOutOfBoundException 等等
异常对象
由异常类创建的对象
编译时异常(受控异常
编译时异常必须在编译阶段处理,但是是在运行时报错
在编译阶段必须处理,具体参考——> 异常的处理方式
运行时异常(未受控异常
在运行时处理
在编写程序阶段不需要对这种异常处理
编译时异常和运行时异常的区别
编译时异常:发生概率较高,可被预测的
运行时异常:发生概率较低
异常的处理方式
- 异常上抛:在方法声明的位置上使用throws关键字
- 异常捕捉:使用try-catch 语句进行异常的捕捉
try-catch
- 所有异常可以用Exception
- catch写多个的时候,必须遵循从小到大写
try{
}catch(Exception e){
}
- 可以用
|
同时处理多个异常
异常对象常用方法
- getMessage
- printStackTrace 打印异常堆栈信息
finally 子句
- 在finally子句中的代码一定会在最后执行执行
- 保证在try语句出现异常的时候,能够释放资源
特殊try-finally语句
public static int doDome2(){
int i =100;
try{
return i;
}finally {
i++;
System.out.println(i);
}
}// 改方法返回100
自定义异常
- 自定义类继承Exception或者RuntimeException
class MyException extends Exception{
public MyException(){
}
public MyException(String str){
super(str);
}
}
注意
- 重写后的方法不能比重写前的方法抛出更多的异常,可以更少
image-20200628150058051.png
UML(统一建模语言)
- 一种图标式语言
- 用来描述类与类之间的关系,程序的运行过程和运行状态等等
- 只要是面向对象程序设计语言就有UML
public static void main(String[] args) throws ClassNotFoundException {
doSome();
}
public static void doSome() throws ClassNotFoundException{
}
public static void main(String[] args) {
try {
doSome();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void doSome() throws ClassNotFoundException{
}