java自定义一个异常类并写个列子
时间: 2024-03-16 17:45:41 浏览: 107
Java SE程序 自定义异常类
5星 · 资源好评率100%
好的,下面是一个Java自定义异常类的例子:
```java
public class NegativeNumberException extends Exception {
public NegativeNumberException(String message) {
super(message);
}
}
```
这个例子中,我们自定义了一个NegativeNumberException类,它继承自Exception类。我们在类中定义了一个构造函数,它接受一个字符串参数,用于传递异常信息。
现在我们来看一个使用这个自定义异常类的例子:
```java
public class Calculator {
public static int divide(int dividend, int divisor) throws NegativeNumberException {
if (divisor == 0) {
throw new ArithmeticException("Cannot divide by zero");
}
if (dividend < 0 || divisor < 0) {
throw new NegativeNumberException("Both dividend and divisor must be positive");
}
return dividend / divisor;
}
}
```
在这个例子中,我们定义了一个名为Calculator的类,它有一个名为divide的静态方法。这个方法接受两个整数作为参数,并返回它们的商。如果除数为零,我们将抛出一个新的ArithmeticException异常。如果被除数或除数是负数,我们将抛出一个新的NegativeNumberException异常。
现在我们来测试一下这个方法:
```java
public class Main {
public static void main(String[] args) {
try {
int result = Calculator.divide(10, -2);
System.out.println(result);
} catch (NegativeNumberException e) {
System.out.println(e.getMessage());
} catch (ArithmeticException e) {
System.out.println(e.getMessage());
}
}
}
```
在这个例子中,我们尝试调用Calculator类的divide方法,并传递10和-2作为参数。这将导致我们抛出一个NegativeNumberException异常,因为我们的自定义异常类要求被除数和除数都必须是正数。我们在try-catch块中捕获这个异常,并输出它的错误信息。
输出结果应该是:
```
Both dividend and divisor must be positive
```
阅读全文