这道题目要求我们输入两个数据(可通过Java应用程序命令行参数输入),或者通过GUI界面输入,然后计算它们的和,并将结果显示出来。编程时需要自定义两个异常,只允许有一个参数的情况(OnlyOneException),和无参情况(NoOperandException)。如果参数数量不足,则应显示相应的提示信息并退出程序执行。
时间: 2024-03-20 15:41:23 浏览: 19
好的,您需要一个Java程序,可以通过命令行参数或GUI界面输入两个数据并计算它们的和,并处理两种自定义异常(OnlyOneException和NoOperandException)。以下是一个示例程序,希望能帮助您:
```java
import java.util.Arrays;
import javax.swing.JOptionPane;
public class Calculator {
public static void main(String[] args) {
try {
if (args.length == 0) {
String input = JOptionPane.showInputDialog("请输入两个数字,用空格隔开:");
args = input.split(" ");
}
if (args.length != 2) {
throw new NoOperandException("请输入两个数字!");
}
double num1 = Double.parseDouble(args[0]);
double num2 = Double.parseDouble(args[1]);
double result = num1 + num2;
JOptionPane.showMessageDialog(null, "计算结果是:" + result);
} catch (OnlyOneException | NoOperandException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "输入的不是数字!");
}
}
}
class OnlyOneException extends Exception {
public OnlyOneException(String message) {
super(message);
}
}
class NoOperandException extends Exception {
public NoOperandException(String message) {
super(message);
}
}
```
该程序首先检查命令行参数的数量,如果没有参数,则通过GUI界面提示用户输入两个数字。然后它检查参数数量是否为2,如果不是,则抛出NoOperandException异常。在计算和之前,它还使用Double.parseDouble()方法将输入的字符串转换为double类型的数字。如果输入不是数字,则会抛出NumberFormatException异常。如果发生任何异常,则会显示相应的错误消息。如果计算成功,则将结果显示在GUI对话框中。同时,程序还包含两个自定义异常类,分别用于处理OnlyOneException和NoOperandException异常。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)