简述自定义异常类的方式
自定义已检查异常,需要自定义异常类继承自Exception类,重写getMessage方法或者利用构造方法传递异常信息.
自定义未检查异常,需要自定义异常类继承自RuntimeException类,重写getMessage方法或者利用构造方法传递异常信息.
异常:
概念:运行时的错误,异常不会在编译期报错,但是程序运行后,根据参数或者运行环境,发生的错误被称为异常.
异常流程:java程序会在出现异常的那行代码中止,创建一个该类异常的对象并向上抛出.如果异常对象抛给虚拟机,则虚拟机会立即终止当前进程.如果没有抛给虚拟机,则程序会继续执行.
异常分类:
1.RuntimeException及其子类:未检查异常,这类异常系统不强制必须处理,但是抛出异常对象会走异常处理流畅.
2.非RuntimeExpection及其子类:已检查异常,这类异常系统强制必须处理,否则编译报错.
异常处理
1/try-catch-finaly
try块负责监控可能出现异常的代码区,一旦出现异常则监控抛出对象.
try块必须出现,但不能独立出现.try块可以和catch块一起出现,也可以和finally块一起出现,或者和catch/finally同时出现.
catch块负责捕获异常:catch块后面有个参数,这个参数规定了该catch块捕获的异常种类,该catch块只会捕获规定的异常,catch块也可以只有一个,也可以多重catch.
finally块:无论是否出现异常,finally块都一定执行,甚至有return的情况,finally都会在return之前执行.因此finally块经常被用于编写释放资源的代码.
2方法throws异常:方法可以在方法签名的抛出异常区规定自己抛出哪类异常或者哪几类异常.
//方法一旦声明抛出异常,则方法内部将不再处理此类异常,这类异常将抛给方法调用点,由调用点处理
自定义异常:
1.自定义已检查异常,自定义异常类继承自Expection
2.自定义未检查异常,自定义异常类继承自
0