输入两个数,输出两个数的商,自定义异常类NegativeException和ZeroException用于检测输入的除数为负数和零时,抛出异常。,请使用java语言给出代码
时间: 2024-03-18 13:41:44 浏览: 53
下面是实现上述功能的Java代码:
```java
class NegativeException extends Exception {
public NegativeException(String message) {
super(message);
}
}
class ZeroException extends Exception {
public ZeroException(String message) {
super(message);
}
}
public class Calculator {
public static void main(String[] args) {
int divisor = 0, dividend = 0;
try {
Scanner sc = new Scanner(System.in);
System.out.print("请输入被除数:");
dividend = sc.nextInt();
System.out.print("请输入除数:");
divisor = sc.nextInt();
if (divisor < 0) {
throw new NegativeException("除数不能为负数!");
} else if (divisor == 0) {
throw new ZeroException("除数不能为零!");
} else {
System.out.println("商为:" + dividend / divisor);
}
} catch (InputMismatchException e) {
System.out.println("输入的不是整数!");
} catch (NegativeException e) {
System.out.println(e.getMessage());
} catch (ZeroException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("出现异常!");
}
}
}
```
程序中定义了两个自定义异常类`NegativeException`和`ZeroException`,用于检测输入的除数是否为负数和零。在`main`函数中,首先获取用户输入的被除数和除数,并对除数进行判断。如果除数为负数,则抛出`NegativeException`异常,如果除数为零,则抛出`ZeroException`异常,否则输出商。在异常处理中,如果输入的不是整数,则抛出`InputMismatchException`异常;如果捕获到`NegativeException`和`ZeroException`异常,则输出异常信息;如果捕获到其他异常,则输出"出现异常!"。
阅读全文