【Java】Java常见的异常类有哪些?
【简要回答】
回答大纲:
一、RuntimeException(运行时异常)
NullPointerException
ArrayIndexOutOfBoundsException
IllegalArgumentException
IllegalStateException
二、IOException(输入输出异常)
FileNotFoundException
EOFException
SocketException
三、SQLException(数据库异常)
SQLSyntaxErrorException
DataAccessException
四、类加载异常
ClassNotFoundException
最后一段话总结一下通用解决方式。
最后的最后,是一些在结构上分类的补充。
【详细回答】
在Java中一些常见的异常类,可以根据其特性和使用场景进行分类。加粗为使用最高频的三种异常。
RuntimeException(运行时异常):
- NullPointerException:空指针异常,当对一个对象引用调用方法或访问属性时,对象引用为空。
- ArrayIndexOutOfBoundsException:数组下标越界异常,当尝试访问数组的不存在的索引时抛出。
- IllegalArgumentException:非法参数异常,当传递给方法的参数不合法时抛出。
- IllegalStateException:非法状态异常,当对象处于不允许的状态下调用方法时抛出。
IOException(输入输出异常):
- FileNotFoundException:文件未找到异常,当尝试打开不存在的文件时抛出。
- EOFException:文件结束异常,当从数据流读取数据时到达文件末尾时抛出。
- SocketException:套接字异常,当与套接字相关的操作失败时抛出。
SQLException(数据库异常):
- SQLSyntaxErrorException:SQL语法错误异常,当执行SQL语句时遇到语法错误时抛出。
- DataAccessException:数据访问异常,当访问数据库或数据存储出现问题时抛出。
ClassNotFoundException:
类未找到异常,当尝试加载不存在的类时抛出。
通用解决方式:
针对这些异常,我们都会采取提前校验、封装工具类、使用增强语法等方式加以避免。出问题时也会通过 try-catch、日志记录和统一异常处理机制来兜底。
另外的:
●Java 的异常都是派生于 Throwable 类的一个实例,所有的异常都是由 Throwable 继承而来的。
●异常又分为 RuntimeException 和其他异常:
○由程序错误导致的异常属于 RuntimeException
○而程序本身没有问题,但由于像 I/O 错误这类问题导致的异常属于其他异常。
●运行时异常 RuntimeException:
○顾名思义,运行时才可能抛出的异常,编译器不会处理此类异常。比如数组索引越界 ArrayIndexOutOfBoundsException、使用的对象为空 NullPointException、强制类型转换错误 NullPointException、除 0 等等。出现了运行时异常,一般是程序的逻辑有问题,是程序自身的问题而非外部因素。
●其他异常:
Exception 中除了运行时异常之外的,都属于其他异常。也可以称之为编译时异常,这部分异常编译器要求必须处置。这部分异常常常是因为外部运行环境导致,因为程序可能运行在各种环境中,如打开一个不存在的文件,此时抛出 FileNotFoundException。编译器要求Java程序必须捕获或声明所有的编译时异常,强制要求程序为可能出现的异常做准备工作。
更多推荐


所有评论(0)