Throwable
Exception
异常:代表出现之后可以被捕获处理的一种不会大范围影响程序运行过程的错误
异常的捕获过程使用:
try { } catch(? extends Exception){ }
catch可以写多个块,每个块负责不同的Exception,这些个异常是需要有顺序的,其顺序应该是越子类越靠前
异常抛出的过程:使用throw抛出
异常从根本上讲,也是一个类型的对象,我们在发生异常的时候,如果要自己去抛出某个异常,需要首先创建这个异常的对象,然后使用throw这个关键字,来将异常抛出
被抛出的异常,不然需要处理,这个时候的处理过程有两种:
一种是直接交给调用者去处理,这个时候,需要在方法体的声明之前通过throws关键字来声明该方法有可能抛出异常;
还有一种,就是使用try…catch…关键字来捕获这个异常
异常的分类
编译异常
指在程序书写过程中,这类异常必须立刻得到处理,负责程序不能正常编译,类型Exception默认就是编译异常
运行时异常
指在程序执行的过程中,可能会抛出某种异常,但是这种异常在程序编译过程中,可以不被捕获或不被处理,其父类为RuntimeException
(注:RuntimeException在程序的书写过程当中就算被throw了,也不用在方法体之前声明有可能抛出异常)
自定义异常
我们在程序书写的时候经常会发现Java给出的异常描述并不能覆盖所有出现的异常情况,这个时候我们需要对自己项目需求的理解,来定义一个Java中不存在的自己定义的异常类型;这个过程叫做自定义异常
如果我们要定义编译异常,我们要自定义继承Exception类型:
如果我们要定义运行时异常,就需要让自定义异常继承RuntimeException
Error
错误:不能被处理的错误,会直接终止程序
相关文章
- 04-12异常 Throwable
- 04-12异常体系结构 throwable
- 04-12异常的体系,Throwable常用的方法,异常类
- 04-12JUnit 异常测试
- 04-12slf4j日志中记录Throwable即异常的堆栈信息
- 04-12RuntimeException与非运行时异常
- 04-12Throwable和 Error, RuntimeException, Exception的区别
- 04-12异常基础
- 04-12异常处理(面试题)
- 04-12异常类相关