用java做一个加减乘除计算器,用try-catch来处理异常
时间: 2023-06-16 13:07:02 浏览: 126
下面是一个简单的加减乘除计算器,使用了try-catch来处理异常:
```java
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个表达式,支持加减乘除运算,例如 2 + 3:");
String input = scanner.nextLine().trim();
String[] parts = input.split("\\s+");
try {
if (parts.length != 3) {
throw new IllegalArgumentException("输入的表达式不合法,请输入一个包含两个操作数和一个运算符的表达式,例如 2 + 3");
}
double num1 = Double.parseDouble(parts[0]);
double num2 = Double.parseDouble(parts[2]);
char operator = parts[1].charAt(0);
double result;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
throw new IllegalArgumentException("不支持的运算符,请输入加减乘除中的一个运算符");
}
System.out.println("计算结果为:" + result);
} catch (NumberFormatException e) {
System.out.println("输入的操作数不合法,请输入一个有效的数值");
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("发生了未知错误,请检查输入的表达式是否正确");
}
}
}
```
在代码中,我们使用了Scanner来读取用户输入的表达式,然后使用split方法将其分割成操作数和运算符。接着,我们使用try-catch来捕捉可能出现的异常,包括NumberFormatException和IllegalArgumentException。其中,NumberFormatException表示输入的操作数不合法,例如输入了一个字符串;IllegalArgumentException表示输入的表达式不合法,例如只有一个操作数或者没有运算符。如果出现其他未知异常,我们就打印出一个错误提示。
在try代码块中,我们首先检查输入的表达式是否合法,如果不合法就抛出一个IllegalArgumentException。然后,我们将操作数和运算符分别解析出来,进行相应的运算。如果出现不支持的运算符,我们就抛出一个IllegalArgumentException。最后,我们将计算结果打印出来。
阅读全文