当前位置: 首页 > 图灵资讯 > 技术篇> 如何在 Java 中创建异常?

如何在 Java 中创建异常?

来源:图灵教育
时间:2024-08-18 23:39:23

在 java 在程序执行过程中,异常用于处理异常情况。您可以创建自定义异常并使用它 try-catch 块或 throws 声明处理异常。异常分为异常(编译器强制处理)和非异常(无需编译器处理)。本教程指导您创建自定义异常,处理检查异常(使用) try-catch (使用)和非检测异常(使用) throws 声明)。

如何在 Java 中创建异常?

如何在 Java 中创建异常

在 Java 异常是处理程序执行过程中异常情况的机制。异常类提供了关于错误或故障类型的信息,允许程序控制流响应这些情况。

您将在本教程中学习:

立即学习“Java免费学习笔记(深入);

  • Java 中异常的基本概念
  • 创建自定义异常
  • 处理不同类型的异常

1. 基本概念

Java 中的异常是 Throwable 类实例分为两类:

  • 受检异常(Checked Exceptions): 例如,编译器强制处理的异常, IOException 或 SQLException。
  • 非受检异常(Unchecked Exceptions): 例如,编译器不需要处理的异常, NullPointerException 或 ArrayIndexOutOfBoundsException。

2. 创建自定义异常

你可以通过扩展 Exception 或 RuntimeException 创建自己的自定义异常。例如,让我们创建一个名字 CustomerNotFoundException 的异常:

public class CustomerNotFoundException extends RuntimeException {

    private final String customerId;

    public CustomerNotFoundException(String customerId) {
        super("Customer with ID " + customerId + " not found.");
        this.customerId = customerId;
    }

    public String getCustomerId() {
        return customerId;
    }
}

3. 处理不同类型的异常

异常可以通过两种主要方法处理:

  • 带有 try-catch 块的异常处理: 使用 try-catch 块体用于处理检测异常,抛出异常时执行 catch 块中的代码。
  • 通过 throws 声明: 使用 throws 声明说明方法可能抛出的未检测异常,让调用方处理异常。

实战案例:

考虑一个简单的客户管理系统。CustomerService 有一种方法可以分类 findById()该方法用于获得具有给定性的方法 ID 的客户:

public class CustomerService {

    public Customer findById(String customerId) {
        // 检查数据库中是否存在客户?
        if (customer == null) {
            throw new CustomerNotFoundException(customerId);
        }

        return customer;
    }
}

在调用 findById() 您可以使用该方法 try-catch 块来处理 CustomerNotFoundException 异常:

try {
    Customer customer = customerService.findById("1234");
} catch (CustomerNotFoundException e) {
    // 处理客户没有找到的情况
    System.out.println("Customer not found: " + e.getCustomerId());
}

alternatively, you can use the throws declaration in the calling method to indicate that the exception might be thrown:

public void findCustomer(String customerId) throws CustomerNotFoundException {
    Customer customer = customerService.findById(customerId);
}

In this case, the calling method must handle the exception or declare it in its own throws declaration.

以上就是如何在这里 Java 创建异常?详情请关注图灵教育的其他相关文章!