【发布时间】:2020-08-10 14:43:22
【问题描述】:
这里我有一个简单的类来执行计算器操作。
Calculator.java
private final ArrayList <Double> values;
private final String operation;
public Calculator(ArrayList<Double> values, String operation) {
this.values = values;
this.operation = operation;
}
public double calculate(){
double num1 = values.get(0);
double num2 = values.get(1);
double answer;
switch (operation) {
case "+" :
answer = addition(num1,num2);
break;
case "-" :
answer = subtraction(num1,num2);
break;
case "*" :
answer = multiplication(num1,num2);
break;
case "/" :
answer = division(num1,num2);
break;
default:
throw new IllegalStateException("Unexpected value: " + operation);
}
return answer;
}
public double addition(double num1,double num2){
return num1+num2;
}
public double subtraction(double num1,double num2){
return num1-num2;
}
public double multiplication(double num1,double num2){
return num1*num2;
}
public double division(double num1,double num2){
return num1/num2;
}
}
这里我要替换throw new IllegalStateException("Unexpected value: " + operation);
这个带有我自己的 System.out 消息并且什么都不返回并停止程序执行。
这里我不能使用return 0,因为这是一个计算器。
其实我想知道如何在cli中使用我自己的system out语句正确处理这个异常,而不会出现红字异常消息。
我在这里使用过 JDK 14。
【问题讨论】:
-
你能展示一下使用这个Calculator类并调用calculate方法的代码吗?要处理异常,您可以在此处添加
try-catch块 -
我实际上建议使用
ArithmeticException,因为这也将导致除以零。 -
那我怎样才能修改我的switch语句没有默认呢?
-
最接近什么都不返回的方法是调用
System.exit(int)。 -
....是什么让您无法用
System.out.println替换异常?
标签: java exception switch-statement java-14