什么是异常Exception ?
程序不正常运行,出现的非正常的情况(如:Java在编译或运行或者运行过程中出现的错误。或 程序退出终止)
如何理解Java中的异常体系(检查和非检查)?
异常分为两种也就是:检查异常和非检查异常
①.检查异常/编译 :编译器要求必须处置的异常。当程序中可能出现这类异常,需要在编译时使用try-catch或者throws声明的异常,如果不处理将无法编译通过。
②非检查异常/ 运行时:在编译过程中没有任何问题,在java命令执行.class文件的时候,发生在运行期异常,在编译时不需要try-catch或者throws声明的异常,在程序运行期间会抛出。如NullPointerException、ArrayIndexOutOfBoundsException等。
①和②主要区别是处理方式不同,对于检查异常需要进行处理,非检查异常则不需要强制处理。而检查异常与非检查异常的区别则在于前者需要在编译时处理,而后者在程序运行时才会抛出。
Java中的常见异常有哪些:
常见的异常
编号 | 异常 | 异常翻译 | 异常简介 |
1 | NullPointerException | 空指针异常 | 空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。 |
2 | IOException | IO流异常 | 我们在读写磁盘文件、网络内容的时候经常会生的一种异常,这种异常是受检查异常,需要进行手工捕获 |
3 | IndexOutOfBoundsException | 数组下标越界异常 | 一个ArrayList数组中没有元素,而你想获取第一个元素,运行时就会报此类型的错误。 |
4 | ArithmeticException | 算术异常 | 发生在数字的算术运算时的异常,如数字除以 0 就会报这个错。 |
5 | NumberFormatException | 数字格式异常 | 将一个String 转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。 |
6 | StringIndexOutOfBoundsException | 字符串下标越界异常 | 使用下标访问某个字符串中的字符,而该下标值小于0或大于等于序列大小时,抛出该异常 |
7 | ArrayStoreException | 数组存储异常 | 试图将类型为不兼容类型的对象存入一个Object[]数组时将引发异常。 |
运行时的部分异常
编号 | 异常翻译 | 异常 |
1 | 空指针异常 | NullPointerException |
2 | 数组下标越界 | ArrayIndexOutOfBoundsException |
3 | 类型转换异常 | ClassCastException |
4 | 数学运算异常 | ArithmeticException |
5 | 下标越界异常 | IndexOutOfBoundsException |
6 | 实例化错误 | InstantiationError |
7 | 字符串下标越界异常 | StringIndexOutOfBoundsException |
8 | 非法状态异常 | IllegalStateException |
9 | 方法参数错误 | IllegalArgumentException |
10 | 没有访问权限 | IllegalAccessException |