编写一个程序IntegerExcep.java。从命令行输入一个字符串,将该字符串转换为double型数据,当数据不在【0,100】之间时抛出一个异常,采用适当的机制来捕获并处理异常。可以用现成的异常也可以自定义异常
时间: 2024-03-11 14:47:41 浏览: 59
好的,这是一个简单的Java程序,可以实现您的需求:
```java
import java.util.Scanner;
public class IntegerExcep {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个0到100之间的数:");
String str = input.nextLine();
try {
double num = Double.parseDouble(str);
if (num < 0 || num > 100) {
throw new OutOfRangeException("输入的数不在0到100之间!");
}
System.out.println("输入的数为:" + num);
} catch (NumberFormatException e) {
System.out.println("输入的不是数!");
} catch (OutOfRangeException e) {
System.out.println(e.getMessage());
}
}
}
class OutOfRangeException extends Exception {
public OutOfRangeException() {
super();
}
public OutOfRangeException(String message) {
super(message);
}
}
```
在这段代码中,我们首先使用`Scanner`类来获取命令行输入的字符串`str`。然后,我们使用`try`块来尝试将该字符串转换为`double`类型的数`num`。如果转换成功,我们判断该数是否在0到100之间,如果不在,则抛出自定义异常`OutOfRangeException`;否则,输出该数。如果转换失败,则输出“输入的不是数!”。
在`catch`块中,我们使用两个异常类型来分别捕捉转换失败和自定义异常。如果出现转换失败的异常,我们将输出“输入的不是数!”;如果出现自定义异常,我们将输出异常的消息。在该程序中,我们使用了一个自定义异常`OutOfRangeException`来表示输入的数不在0到100之间。该异常继承自`Exception`类,有两个构造函数,一个是无参构造函数,另一个是带有异常消息的构造函数。
当输入的数不在0到100之间时,程序将抛出自定义异常,并输出异常消息。否则,程序将输出输入的数。
阅读全文