### 1.异常的概述
对Java来说,异常就是一个类,产生了一个异常,就是产生了一个类的对象,
这个类代表不正常的现象。
整个异常体系 :重要
Throwable(生病)
Error (不可治愈的疾病) 错误:宕机,断点,海啸
Exception (能治愈的疾病) : 异常,程序员能处理
非RuntimeExcetion 非运行时期异常,编译器异常,要求我们在编译器
就必须进行处理 RuntimeException(运行时期异常 )
### 2.异常的注意事项:
异常的注意事项:
1.如果对发生的异常一直不处理,程序不再继续执行
2.如果对发生的异常进行try,catch,此時發生了異常,try下的代碼不會執行,
此異常會被catch捕獲,同时程序继续执行
### 3.异常处理的第一种方式:
第一种方式:捕获异常(分为单异常捕获,和多异常捕获)
使用规则:异常捕获
try{
// 可能产生异常的代码
}catch(Exception e){
// 如果产生异常,进行处理
}
Java处理异常的机制:如果不处理异异常,则代码停止执行,并且将异常直接抛给JVM。
使用规则:多异常捕获
try{
// 可能发生异常的代码
}catch(异常类型 | 异常类型 e2){
//如果产生异常,进行的处理
// e.printStackTrace() 打印 针对于程序员的public class Demo01 {
public static void main(String[] args) {
Test t = new Test();
int method = t.method();
System.out.println(method);
}
}
class Test{
public int method(){
int i = 0;
try{
System.out.println(1/0);
return i;
}catch(Exception e){
e.printStackTrace();
}finally{
i = 200;
System.out.println("我一定会运行");
}
return i;
}
//返回路径:每次碰到return就会在返回路径中临时存储这个被返回的值,
无论方法内有任何的改变,返回路径中的这个值一致不变。
}
//异常名字,异常描述,异常发生在哪儿
}
问题为什么要分开捕获
注意:该异常处理,只能是针对同级异常
### 4.异常处理的第二种方式
使用规则:抛出异常,在方法后边加上throws
两个问题:
如果不处理异常,那么异常最终会到哪儿
如果拋出了异常,谁处理。
### 5.自定义异常
使用规则: extends RuntimeException
4个构造方法
1.创建自定义异常 -->extends
RuntimeException
非RuntimeException
需要实现父类的构造方法(传入自己的异常信息)
throw 进行抛出,并且进型处理
### 6.子父类异常注意事项:
运行异常的特点:
父类的方法,如果抛出异常,子类重写后可以不抛出异常也可以抛出异常,
但是,如果子类要抛,抛出的异常不能大于父类的异常大于,都指的是继承关系
父类的方法,没有异常抛出,子类重写后也不能抛出异常,
如果子类中调用了抛出异常的方法,别无选择,只能try..catch处理意义
### 面试题
1、 throw 和throws 的区别是什么
throw
定义在方法中,后边跟的是异常对象
同时只能抛出一个异常对象
throws
定义在方法的声明上,后边跟的是异常的类型
后边同时可以跟多个数据类型
2、 finally 返回路劲面试题
2. finally :在正常情况下,肯定执行的代码
在try中return,在finally中修改:
//返回路径:每次碰到return就会在返回路径中临时存储这个被返回的值,
无论方法内有任何的改变,返回路径中的这个值一致不变。
代码:
public class Demo01 {
public static void main(String[] args) {
Test t = new Test();
int method = t.method();
System.out.println(method);
}
}
class Test{
public int method(){
int i = 0;
try{
System.out.println(1/0);
return i;
}catch(Exception e){
e.printStackTrace();
}finally{
i = 200;
System.out.println("我一定会运行");
}
return i;
}
//返回路径:每次碰到return就会在返回路径中临时存储这个被返回的值,
无论方法内有任何的改变,返回路径中的这个值一致不变。
}
© 版权声明
转载请注明出处,并标明原文链接。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
THE END
暂无评论内容