Error与RuntimeException

1、什么是Errorjava

Error用于指示应用程序不该该试图捕获的严重问题。数组

2、什么是Exception对象

Exception类及其子类用于指示应用程序须要处理的异常。排序

3、Error与Exception之间的联系继承

1.继承联系递归

Error与Exception都继承java.lang.Throwable(全部错误或异常的超类)。索引

2.检查异常内存

未检查异常: Error与RuntimeException及其子类称为未检查异常(未显示提醒的异常),java编译器未检查的代码块,当程序运行时可能出现的异常,在没有try和catch,也没有throws的状况下,仍然能够编译经过。如:OutOfMemoryError(内存溢出异常),StackOverflowError(堆栈溢出时,抛出该错误),ArrayIndexOutOfBoundsException(数组超出排序索引范围时抛出)等异常。编译器

检查异常: 除了Error与RuntimeException及其子类其余都称为检查异常(提醒处理的异常),这类异常若是没有try和catch,也没有throws的状况下,编译是不能经过的。如:TimeoutException(阻塞操做超时时,抛出该异常),IOException(当发生某种 I/O 异常时,抛出此异常)。io

4、异常关键字

1.throw: 用来抛出任意异常,在程序内部使用,调用方法不会显示提醒须要处理异常。当抛出异常时,会检查是否有处理异常,有处理即按照处理逻辑运行,未处理时程序将抛出异常,而后终止运行。

2.throws: 用来抛出多个异常,在方法头部中声明,调用方法会提醒处理异常,不处理即不能经过编译。

3.try: 没有出现异常时,运行的代码块(当某行代码产生异常时,当前代码块当即中止运行)。

4.catch: 出现异常时,运行的代码块(出现异常时执行的代码块)。

5.finally: 无论异常是否出现都会执行的代码块,当try和catch里面有return时,finally仍是会执行,⚠️ 若是finally中有return时,将返回finally里面的值。

5、Error与RuntimeException异常处理

1.若是程序出现RuntimeException异常,那么必定是程序没有写完善,须要从新修改程序。

2.若是程序出现StackOverflowError,多数状况下是递归调用方法出现了死循环,修改方法递归处理时的判断语句或者设置一个最大循环数。

3.若是程序出现OutOfMemoryError,那么就是内存满了,新的对象没法分配到内存,修改java内存配置参数(具体配置多少内存,须要预估整个应用的使用状况和GC的回收状况)。

相关文章
相关标签/搜索