首页
学习
活动
专区
圈层
工具
发布

java的自定义异常

Java 中的自定义异常是指用户自行定义的异常类,用于表示程序中特定的错误或异常情况。Java 中的异常类都是 Throwable 类或其子类的实例,因此自定义异常类必须继承 Throwable 类或其子类。常见的异常类包括 Exception 和 RuntimeException。

自定义受检异常

自定义受检异常通常用于表示程序中的业务逻辑错误,比如参数错误、文件读写错误等。为了标识该异常是受检异常,需要将自定义异常类继承 Exception 类。

Java 实现代码:

代码语言:javascript
复制
public class MyCheckedException extends Exception {
    public MyCheckedException(String message) {
        super(message);
    }
}

该自定义异常类继承了 Exception 类,并提供了一个带有字符串参数的构造函数,用于指定异常消息。在使用该异常类时,可以使用 try-catch 块捕获并处理该异常。

自定义非受检异常

自定义非受检异常通常用于表示程序中的逻辑错误或不可恢复的错误,比如空指针引用、数组越界等。为了标识该异常是非受检异常,需要将自定义异常类继承 RuntimeException 类。

Java 实现代码:

代码语言:javascript
复制
public class MyUncheckedException extends RuntimeException {
    public MyUncheckedException(String message) {
        super(message);
    }
}

该自定义异常类继承了 RuntimeException 类,并提供了一个带有字符串参数的构造函数,用于指定异常消息。在使用该异常类时,可以直接抛出该异常。

使用自定义异常

在使用自定义异常时,可以根据具体情况选择合适的异常类,并根据需要提供相应的构造函数和方法。

Java 实现代码:

代码语言:javascript
复制
public class MyExceptionTest {
    public static void main(String[] args) {
        try {
            int a = 10;
            if (a > 5) {
                throw new MyCheckedException("参数错误");
            } else {
                throw new MyUncheckedException("逻辑错误");
            }
        } catch (MyCheckedException e) {
            System.out.println("受检异常:" + e.getMessage());
        } catch (MyUncheckedException e) {
            System.out.println("非受检异常:" + e.getMessage());
        }
    }
}

在该例子中,根据变量 a 的值选择抛出自定义受检异常或非受检异常。在 catch 块中捕获并处理该异常。

下一篇
举报
领券