以下是一个在Java中捕获和处理自定义异常的完整代码示例:
// 1. 自定义异常类
class CustomException extends Exception {
public CustomException() {
super();
}
public CustomException(String message) {
super(message);
}
}
// 2. 包含可能抛出自定义异常的方法的类
class MyClass {
public static void doSomething() throws CustomException {
// 这里模拟一个可能抛出异常的情况,例如满足某个条件就抛出异常
boolean someCondition = true;
if (someCondition) {
throw new CustomException("自定义异常发生了,因为满足了特定条件");
}
}
}
// 3. 主类,用于捕获和处理自定义异常
public class Main {
public static void main(String[] args) {
try {
MyClass.doSomething();
System.out.println("如果没有抛出异常,这里会正常执行");
} catch (CustomException e) {
System.out.println("捕获到自定义异常: " + e.getMessage());
// 可以在这里添加更多针对该异常的处理逻辑,比如记录日志、进行一些补救措施等
}
}
}
在上述代码中:
- 首先定义了一个自定义异常类
CustomException
,它继承自Exception
类,并重写了构造函数以便能传递自定义的异常消息。 - 然后创建了
MyClass
类,其中的doSomething
方法在满足特定条件时会抛出CustomException
异常。 - 最后在
Main
类的main
方法中,通过try - catch
块调用MyClass.doSomething()
方法。如果该方法抛出CustomException
,则会在catch
块中被捕获并处理,这里只是简单地打印出异常消息,实际应用中可以根据需求添加更复杂的处理逻辑。