读入两个数据(java aplication命令行参数输入、或通过gui输入),并计算它们的和,然后将和显示输出。编程自定义异常onlyoneexception(只有一个参数)与nooprandexception(无参数)。如果参数的数目不足,显示相应提示信息并退出程序的执行。
时间: 2023-05-04 12:01:40 浏览: 140
这道题目要求我们输入两个数据(可通过Java应用程序命令行参数输入),或者通过GUI界面输入,然后计算它们的和,并将结果显示出来。编程时需要自定义两个异常,只允许有一个参数的情况(OnlyOneException),和无参情况(NoOperandException)。如果参数数量不足,则应显示相应的提示信息并退出程序执行。
相关问题
读入两个数据(Java Aplication命令行参数输入、或通过GUI输入),并计算它们的和,然后将和显示输出。编程自定义异常OnlyOneException(只有一个参数)与NoOprandException(无参数)。如果参数的数目不足,显示相应提示信息并退出程序的执行。
以下是一个基于命令行参数输入的 Java 示例代码:
```java
public class Calculator {
public static void main(String[] args) {
try {
if (args.length != 2) {
throw new IllegalArgumentException("必须输入两个参数");
}
double num1 = Double.parseDouble(args[0]);
double num2 = Double.parseDouble(args[1]);
double sum = num1 + num2;
System.out.println("和为:" + sum);
} catch (NumberFormatException e) {
System.out.println("参数必须是数字");
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
```
在上面的代码中,我们首先判断输入参数的个数是否为2,如果不是则抛出 `IllegalArgumentException` 异常。然后将输入的参数转换为 `double` 类型并计算它们的和。如果输入的参数不是数字,则抛出 `NumberFormatException` 异常。如果抛出任何异常,程序将输出相应的错误信息。
接下来,我们定义 `OnlyOneException` 和 `NoOperandException` 两个自定义异常类:
```java
public class OnlyOneException extends Exception {
public OnlyOneException(String message) {
super(message);
}
}
public class NoOperandException extends Exception {
public NoOperandException(String message) {
super(message);
}
}
```
`OnlyOneException` 表示只有一个参数的异常,`NoOperandException` 表示没有参数的异常。这两个异常类都继承了 `Exception` 类,因此它们都是可检查异常,需要在方法签名中声明或在方法内部捕获。
现在,我们可以使用这两个自定义异常类来修改我们的代码:
```java
public class Calculator {
public static void main(String[] args) {
try {
switch (args.length) {
case 0:
throw new NoOperandException("缺少参数");
case 1:
throw new OnlyOneException("只有一个参数");
case 2:
double num1 = Double.parseDouble(args[0]);
double num2 = Double.parseDouble(args[1]);
double sum = num1 + num2;
System.out.println("和为:" + sum);
break;
default:
throw new IllegalArgumentException("超出参数数量限制");
}
} catch (NumberFormatException e) {
System.out.println("参数必须是数字");
} catch (OnlyOneException | NoOperandException | IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
```
现在,我们使用 `switch` 语句根据参数的数量来判断程序应该如何执行。如果没有参数,则抛出 `NoOperandException` 异常;如果只有一个参数,则抛出 `OnlyOneException` 异常;如果有两个参数,则计算它们的和并输出结果;如果参数数量超过2个,则抛出 `IllegalArgumentException` 异常。注意,在 `catch` 语句中,我们使用了多重捕获来捕获不同类型的异常。最后,如果抛出异常,则输出相应的错误信息。
使用Java Aplication的命令行参数读入两个数据,计算它们的和,然后将和输出。编程自定义异常OnlyOneException与NoOprandException。如果参数的数目不足,显示相应提示信息并退出程序的执行。
以下是使用Java实现的命令行参数读入两个数据,计算它们的和,然后将和输出。同时,还实现了自定义异常OnlyOneException与NoOprandException:
```java
public class Calculator {
public static void main(String[] args) {
try {
if (args.length < 2) {
throw new NoOprandException("至少需要两个参数");
} else if (args.length > 2) {
throw new OnlyOneException("只能输入两个参数");
}
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
System.out.println(num1 + num2);
} catch (NoOprandException | OnlyOneException e) {
System.out.println(e.getMessage());
} catch (NumberFormatException e) {
System.out.println("输入的参数必须是整数");
}
}
}
class OnlyOneException extends Exception {
public OnlyOneException(String message) {
super(message);
}
}
class NoOprandException extends Exception {
public NoOprandException(String message) {
super(message);
}
}
```
在这个程序中,我们首先判断参数个数是否符合要求,如果不符合则抛出自定义异常OnlyOneException或NoOprandException;然后通过Integer.parseInt()方法将参数转换为整数类型,如果转换失败则抛出NumberFormatException异常;最后将两个数相加并输出结果。
其中,自定义异常OnlyOneException与NoOprandException继承自Exception类,用于处理特定的异常情况。只有在特定的异常情况下才会抛出这两种异常,并在程序中进行处理。