编写自定义异常类DivideByZeroException,并且捕捉该异常,并且在打印该异常信息。 编写泛型类Pair,输出打印出其成员变量信息。
时间: 2024-10-07 22:04:41 浏览: 31
捕捉除数=0异常.rar
5星 · 资源好评率100%
首先,我们来创建一个自定义异常类`DivideByZeroException`,当除数为零时抛出这个异常:
```java
class DivideByZeroException extends Exception {
public DivideByZeroException(String message) {
super(message);
}
}
```
在这个异常类中,我们继承了`Exception`类,并添加了一个构造函数,用于传递异常的消息。
接着,我们可以编写一个泛型类`Pair`,它有两个类型相同的成员变量,并包含打印成员变量信息的方法:
```java
public class Pair<T> {
private T first;
private T second;
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
// 获取和设置成员变量
public T getFirst() { return first; }
public void setFirst(T first) { this.first = first; }
public T getSecond() { return second; }
public void setSecond(T second) { this.second = second; }
// 打印成员变量信息
public void print() {
System.out.println("Pair [first: " + first + ", second: " + second + "]");
}
}
```
现在,在主程序中,我们将捕获并打印`DivideByZeroException`以及使用`Pair`类:
```java
public class Main {
public static void main(String[] args) {
try {
int numerator = 10;
int denominator = 0;
if (denominator == 0) {
throw new DivideByZeroException("Cannot divide by zero.");
} else {
// 如果除数不为零,可以正常操作
Pair<Integer> intPair = new Pair<>(numerator, denominator);
intPair.print();
}
} catch (DivideByZeroException e) {
// 捕获并打印 DivideByZeroException 异常
System.err.println("Caught DivideByZeroException: " + e.getMessage());
}
}
}
```
在这个例子中,如果尝试除以零,会抛出`DivideByZeroException`,然后在`catch`块中捕获并打印异常信息。同时,我们创建了一个`Pair<Integer>`并打印了它的内容。
阅读全文