实现对数字的判断,要求若输入的数字为负数或小数都不能计算其平方根。计算方法通过throws将异常抛出。请自定义异常类:NoPositiveNumber(不是正数)和Decimal(小数)实现该程序。
时间: 2024-09-25 07:09:31 浏览: 25
sqrt:计算数字平方根的巴比伦方法
在Java中,你可以创建两个自定义异常类`NoPositiveNumber`和`Decimal`,以及一个名为`SquareRootCalculator`的类,来实现这个功能。这里是一个简单的示例:
首先,定义两个自定义异常类:
```java
class NoPositiveNumber extends Exception {
public NoPositiveNumber(String message) {
super(message);
}
}
class Decimal extends Exception {
public Decimal(String message) {
super(message);
}
}
```
接下来,创建`SquareRootCalculator`类,其中包含一个计算平方根的方法,该方法会检查输入是否为正数:
```java
public class SquareRootCalculator {
public double calculateSquareRoot(double number) throws NoPositiveNumber, Decimal {
if (number < 0) {
throw new NoPositiveNumber("输入的数字不能是负数");
} else if (!Double.isWhole(number)) {
throw new Decimal("输入的数字不能是小数");
}
return Math.sqrt(number);
}
}
```
在主程序中,你可以创建`SquareRootCalculator`的实例,并尝试调用`calculateSquareRoot`方法,捕获可能出现的异常:
```java
public class Main {
public static void main(String[] args) {
try {
SquareRootCalculator calculator = new SquareRootCalculator();
double result = calculator.calculateSquareRoot(-5); // 这会引发NoPositiveNumber异常
// 或者
double anotherResult = calculator.calculateSquareRoot(4.5); // 这会引发Decimal异常
} catch (NoPositiveNumber e) {
System.out.println("错误:" + e.getMessage());
} catch (Decimal e) {
System.out.println("错误:" + e.getMessage());
}
}
}
```
这样,如果输入的是负数或小数,就会抛出相应的异常并打印出相应错误信息。
阅读全文