异常类型
Java中的异常分为检查型异常(Checked Exceptions)和非检查型异常(Unchecked Exceptions)。
检查型异常(Checked Exceptions)
在编译时必须被显式处理的异常。通常是由外部因素导致的,例如文件不存在、网络连接失败等。编译器会强制程序员处理这些异常,要么通过try-catch语句捕获,要么在方法签名中使用throws关键字声明。
常见的检查型异常包括:
IOExcept从ion:输入输出异常,如文件读写错误。
SQLExc从eption:数据库访问异常。
ClassNotFou从ndException:类找不到异常。
NoSuchMetho从dException:方法找不到异常。
InvocationTa从rgetException:反射调用目标异常。
非检查型异常(Unchecked Exceptions)
包括运行时异常(RuntimeExcep从tions)和错误(Errors)。这些异常在编译时不需要被显式处理,因为它们通常是由程序逻辑错误或系统错误引起的,也就是说这些就是你写的bug,应该在代码编写阶段避免掉。
常见的非检查型异常包括:
NullPointe 从rException:空指针异常。
ArrayIndexO从utOfBoundsException:数组越界异常。
IllegalArgum从entException:非法参数异常。
ArithmeticEx从ception:算术异常,如除以零。
ClassCast从Exception:类型转换异常。
检查型异常和非检查型异常区别:
编译时检查:检查型异常必须在编译时被处理,而非检查型异常则不需要。
处理要求:检查型异常强制程序员处理,而非检查型异常则不强制,但仍然建议处理。
异常类型:检查型异常通常是由外部因素导致的,而非检查型异常通常是由程序逻辑错误或系统错误引起的。
传播方式:检查型异常会强制传递给调用者,而非检查型异常则可以选择性地处理或不处理。