Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
第6章 异常处理_异常处理的4个步骤,希望能够帮助你!!!。
异常概述
1)异常:指的是程序在执行过程中,出现的非正常情况,最终导致JVM非正常停止
2)异常体系
Error:严重错误,无法处理的错误,只能事先避免,比如内存溢出
Exception:成为异常类,它表示程序本身可以处理的问题,比如数组下表越界
RuntimeExcetion:在编译期是不检查的,出现问题后,需要我们回来修改代码
非RuntimeException:编译期就必须处理的,否则程序不能通过编译,就更不能正常运行了
异常处理的机制
1)当程序抛出一个异常后,从程序中导致异常的代码处跳出来,java虚拟机检测虚招和try关键字匹配的处理该异常的catch块
2)如果找到,将控制权交到catch块中的代码,然后继续往下执行程序,try块中发生异常的diamante不会被重新执行
3)如果没有找到处理该异常的catch块,最终运行时报错。
格式
try{
可能出现异常的代码
}catch(异常名 变量名){
异常的处理代码;
}
执行流程:
1)程序从try里面的代码开始执行
2)出现异常,会自动生成一个异常类对象,该异常对象将被提交给java运行时系统
3)当运行时系统接收到异常对象时,会到catch中找匹配的异常类,找到后进行异常的处理
4)执行完毕之后,程序还可以继续往下执行。
异常处理之多个...catch...
1、每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常
2、捕获的异常类型由上至下地捕获异常类型的顺序应是子类到父类的
数组下表越界异常
不在子类的异常,就往父类上找
finally语句
1)finally语句为异常处理地提供的一个统一的出口,使得在控制流程到程序其他部分之前,能够对程序的状态作统一的管理
2)无论try所指的程序块中是否抛出异常,finally所指定的代码都要被执行
3)通常finally在语句中可以进行资源的释放,如关闭打开的文件,关闭数据库连接等
修饰符 返回值类型 方法名(参数)throws 异常类名1,异常类名2,.....{ }
格式:
throw new 异常类名(参数)
throws |
throw |
1、用在方法声明后,跟的是异常类名 |
1、用在方法体内,跟的是异常对象名 |
2、表示抛出异常,由该方法的调用者来处理 |
2、表示抛出异常,由方法体内的语句处理 |
3、表示出现异常的一种可能性,并不一定会发生异常 |
3、执行throw一定抛出了某种异常 |
当应用程序试图在需要对象的地方使用null时,抛出该异常
当使用的数组下标超出数组允许范围时,抛出该异常
当试图将对象强制转换为不是实例的子类时,抛出该异常
创建父类Father、创建子类Son、创建子类Girl、创建main方法,girl强转给son
当应用程序试图将字符串转成一种数值类型,但该字符串不能转换为适当的格式,抛出该异常
Throwable定义了一个方法可以输出错误信息,用来跟踪异常时间发生时执行堆栈的内容,该方法定义为void printStackTrace()
Throwable定义了一个方法可以得到有关异常事件的信息,该方法定义为:String getMessage()
代码
1、创建自定义异常类,继承异常类
2、创建老师类,写方法判断分数,抛出自定义异常类
3、创建main方法,try catch捕获自定义异常
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章