什么是异常:

其中,老师正常执行“发卷子()”这个方法,我们正常开考,这时候是没有异常的。
但是如果在老师发卷子的时候,有个熊孩子A不安分、捣乱,导致老师没法正常发卷子,我们的考试就不能正常进行。这时候,那个熊孩子A就是异常,因为他阻止了“发卷子()”这个方法继续执行。
大环境是这个操场,也就是说我们体育课的作用域是操场,正常的体育课是这样的:

那么异常状态是什么呢,假设现在有个倒霉孩子B,上体育课的时候受伤了,还挺严重的,这时候老师得把倒霉孩子B送医务室,体育课就没法上了。这时候,那个倒霉孩子B就是异常,因为他阻止了体育课在操场这个域的正常执行执行。
在上面两个例子中,熊孩子A和倒霉孩子B就是异常了。他们出了点状况,使我们正常情况下能完成的事没有完成。
什么是异常处理:
异常阻止了程序的正常执行产生了中断;然后程序还是要继续,所以就有了异常处理的概念,发生异常后,通过一定的处理机制来让程序继续;
异常处理有两种形式,以熊孩子A为例,正常的考试流程doExam()
要么现场处理:捕获异常(try),进行处理(catch)
要么交给上级处理:throw给调用者
发卷子时有可能会有熊孩子出现,发生异常;也就是distributePaper();方法是有可能要出问题的;有风险的东西我们要检查,使用try块进行包裹代表实施检查,当发生问题时在catch中进行处理;
可以看到针对熊孩子这个异常,如果出现,就在catch中进行处理,如果没有出现则继续执行startExam();
第二种情况
当发卷过程中出现熊孩子时,老师就报告教导主任,等待教导主任决策;而考试自然就被延迟了;

本来宝宝的生活是这样的

但是马蓉出轨,于是成了这样:
这个例子中,马蓉出轨是一个异常,她造成了婚姻不能继续了,所以王宝强catch到这个异常后throw了这个异常,于是有了离婚声明。但是最后,不论宝宝的婚姻里面有没有马蓉出轨,媒体都会找点事让宝宝上下新闻,所以有了个finally。
在《java编程思想》中这样定义异常:阻止当前方法或作用域继续执行的问题。这样的说法抽象
其中,老师正常执行“发卷子()”这个方法,我们正常开考,这时候是没有异常的。
但是如果在老师发卷子的时候,有个熊孩子A不安分、捣乱,导致老师没法正常发卷子,我们的考试就不能正常进行。这时候,那个熊孩子A就是异常,因为他阻止了“发卷子()”这个方法继续执行。
再
大环境是这个操场,也就是说我们体育课的作用域是操场,正常的体育课是这样的:
那么异常状态是什么呢,假设现在有个倒霉孩子B,上体育课的时候受伤了,还挺严重的,这时候老师得把倒霉孩子B送医务室,体育课就没法上了。这时候,那个倒霉孩子B就是异常,因为他阻止了体育课在操场这个域的正常执行执行。
在上面两个例子中,熊孩子A和倒霉孩子B就是异常了。他们出了点状况,使我们正常情况下能完成的事没有完成。
什么是异常处理:
异常阻止了程序的正常执行产生了中断;然后程序还是要继续,所以就有了异常处理的概念,发生异常后,通过一定的处理机制来让程序继续;
异常处理有两种形式,以熊孩子A为例,正常的考试流程doExam()
要么现场处理:捕获异常(try),进行处理(catch)
要么交给上级处理:throw给调用者
void teacherIn(){
System.out.println("老师走进教室");
}
void distributePaper(){
System.out.println("发卷子");
}
void startExam(){
System.out.println("开始考试");
}
void doExam(){
teacherIn();
distributePaper();
startExam();
}
发卷子时有可能会有熊孩子出现,发生异常;也就是distributePaper();方法是有可能要出问题的;有风险的东西我们要检查,使用try块进行包裹代表实施检查,当发生问题时在catch中进行处理;
void doExam(){
teacherIn();
try{
//1.检查是否有异常
distributePaper();
}catch(Exception e){
//2.发生异常时进行处理
System.out.println("将熊孩子扔出去");
}
startExam();//3.没有异常或者异常处理后继续执行
可以看到针对熊孩子这个异常,如果出现,就在catch中进行处理,如果没有出现则继续执行startExam();
第二种情况
void doExam() throws Exception{
teacherIn();
//发生异常后交给上级(方法调用者)处理:把熊孩子的事报告给上级,等待上级决定是否继续考试
distributePaper();
startExam();
}
当发卷过程中出现熊孩子时,老师就报告教导主任,等待教导主任决策;而考试自然就被延迟了;
void marry(Object wife){
System.out.println("和"+wife+"结婚");
}
void getChild(){
System.out.println("生子");
}
void lifeForever(){
System.out.println("白头偕老");
}
void matrimony(){
System.out.println("宝宝的婚姻生活开始");
Object marong=new Object();
marry(marong);
getChild();
lifeForever();
}
本来宝宝的生活是这样的
但是马蓉出轨,于是成了这样:
这个例子中,马蓉出轨是一个异常,她造成了婚姻不能继续了,所以王宝强catch到这个异常后throw了这个异常,于是有了离婚声明。但是最后,不论宝宝的婚姻里面有没有马蓉出轨,媒体都会找点事让宝宝上下新闻,所以有了个finally。