1、什么是异常
Java异常是在程序执行过程中发生的意外或异常情况。当程序遇到错误或异常时,它会抛出一个异常对象,该对象包含有关错误的信息。Java异常机制允许程序员捕获和处理这些异常,以便在出现问题时采取适当的措施。
Java异常分为两种类型:已检查异常(Checked Exceptions)和未检查异常(Unchecked Exceptions)。
1.已检查异常:是指在编译时强制检查的异常,必须在代码中显式地处理或声明抛出。例如,IOException和SQLException就是已检查异常。
2.未检查异常:是指在编译时不强制检查的异常,不需要在代码中显式地处理或声明抛出。常见的未检查异常包括NullPointerException、ArrayIndexOutOfBoundsException和ArithmeticException等。
2.常见的 Exception 有哪些?
在Java中,常见的Exception包括但不限于以下几种:
- NullPointerException(空指针异常):当尝试使用空引用调用对象的方法或访问对象的字段时抛出。
- ArrayIndexOutOfBoundsException(数组越界异常):当尝试访问数组中不存在的索引时抛出。
- IllegalArgumentException(非法参数异常):当传递给方法的参数不满足方法的要求时抛出。
- IllegalStateException(非法状态异常):当对象的状态不符合方法调用的前提条件时抛出。
- IOException(输入输出异常):在处理输入输出操作时发生错误时抛出。
- ClassNotFoundException(类未找到异常):当尝试加载不存在的类时抛出。
- InterruptedException(中断异常):在线程等待、休眠或阻塞的过程中被中断时抛出。
- SQLException(SQL异常):在访问数据库时发生错误时抛出。
- FileNotFoundException(文件未找到异常):当尝试访问不存在的文件时抛出。
ArithmeticException(算术异常):在算术操作中出现错误时抛出,例如除以零。
3.Exception 处理方式/用法
在Java中,我们可以使用try-catch语句块来处理异常。try块用于包含可能会抛出异常的代码,而catch块用于捕获并处理异常。以下是几种处理异常的常见用法,并附带示例代码说明:
1.捕获并处理特定类型的异常
在捕获的异常里面我们就可以做一些业务操作,例如:异常了,我们的业务需要回滚。
try {
// 可能会抛出异常的代码
int result = 10 / 0; // 除以零会抛出ArithmeticException
} catch (ArithmeticException e) {
// 捕获并处理ArithmeticException异常
System.out.println("除以零错误发生:" + e.getMessage());
}
2.捕获并处理多个类型的异常
此处注意,异常的捕获是逐步向下的,平级的异常无所谓上下方,但是 Exception 这种父类异常,要放在子类异常的下面,否则会被 Exception 捕获.
try {
// 可能会抛出异常的代码
String str = null;
str.length(); // str为null,会抛出NullPointerException
} catch (NullPointerException e) {
// 捕获并处理NullPointerException异常
System.out.println("空指针异常发生:" + e.getMessage());
} catch (ArithmeticException e) {
// 捕获并处理ArithmeticException异常
System.out.println("除以零错误发生:" + e.getMessage());
}
3.使用finally块进行清理操作
try {
// 可能会抛出异常的代码
// ...
} catch (Exception e) {
// 捕获并处理异常
// ...
} finally {
// 在try或catch块执行后,无论是否发生异常,都会执行的代码块
// 通常用于进行资源的释放或清理操作,如关闭文件、数据库连接等
// ...
}
4.抛出自定义异常
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
public class Example {
public static void main(String[] args) {
try {
// 抛出自定义异常
throw new CustomException("自定义异常信息");
} catch (CustomException e) {
// 捕获并处理自定义异常
System.out.println("自定义异常发生:" + e.getMessage());
}
}
}
这些是Java中处理异常的几种常见用法。通过使用try-catch语句块,我们可以捕获并处理可能发生的异常,从而保证程序的稳定性和可靠性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。