1.计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。 2. 编写程序包含自定义异常,当输入数值为13和4时抛出该异常。
时间: 2024-11-20 12:44:20 浏览: 37
1. 在Java中,你可以编写一个简单的程序来计算两个数字的除法,同时使用try-catch块处理可能出现的异常。首先,定义一个`DivideByZeroException`和`InvalidInputException`作为自定义异常。以下是示例代码:
```java
class DivideByZeroException extends Exception {
public DivideByZeroException(String message) {
super(message);
}
}
class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
try {
double num1 = 10.0;
double num2 = 2.0;
double result = divideNumbers(num1, num2);
System.out.println("结果: " + result);
} catch (ArithmeticException e) { // 捕获除数为0的情况
throw new DivideByZeroException("除数不能为零");
} catch (IllegalArgumentException e) { // 参数输入有误的情况
throw new InvalidInputException("输入的数值无效");
} catch (Exception ex) { // 其他未知异常
ex.printStackTrace();
}
}
public static double divideNumbers(double num1, double num2) {
if (num2 == 0) {
throw new ArithmeticException(); // 抛出内置异常,因为除以零在数学上无意义
}
return num1 / num2;
}
}
```
在这个例子中,如果尝试用`divideNumbers`方法除以0,会引发`ArithmeticException`,而我们在try块外面捕获了这个异常,并用自定义异常`DivideByZeroException`替换。
2. 若要在特定条件(例如输入13和4)下抛出自定义异常,可以在`divideNumbers`方法中添加额外的检查:
```java
public static double divideNumbers(double num1, double num2) {
if (num2 == 0) {
throw new DivideByZeroException("除数不能为零");
} else if (num1 == 13 && num2 == 4) {
throw new CustomExceptionForValues("输入的数值组合不允许"); // 自定义异常
}
return num1 / num2;
}
```
这里假设你已经定义了一个名为`CustomExceptionForValues`的新异常类。
阅读全文