【java】NumberFormatException异常
课本P426 T12.1
( NumberFormatException异常)程序清单7-9是一个简单的命令行计算器。注意,如果某个操作数非数值,程序就会中止。编写一个程序,利用异常处理器来处理非数值操作数;然后编写另一个不使用异常处理器的程序,达到相同的目的。程序在退出之前应该显示一条消息,通知用户发生了操作数类型错误(参见图12-12 )。
如果需要功能更完善、代码更简洁以及bug更少的代码,可以到我的小程序 航筱北同学 上搜索查看。代码可长按复制,里面还有很多实战项目和面试话术。
源代码
package leiPackage;
import java.util.*;
public class NumExp {
public static void main (String[] args) {
int num1, num2, result = 0;
if (args.length != 3) {
System.out.println(
"please use operand1 operator operand2");
System.exit(1);
}
try {
num1 = Integer.parseInt(args[0]);
}
catch (NumberFormatException ex) {
System.out.println("Wrong Input: " + args[0]);
return;
}
try {
num2 = Integer.parseInt(args[2]);
}
catch (NumberFormatException ex) {
System.out.println("Wrong Input: " + args[2]);
return;
}
switch (args[1].charAt(0)) {
case '+': result = num1 + num2;
break;
case '-': result = num1 - num2;;
break;
case '.': result = num1 * num2;;
break;
case '/': result = num1 / num2;;
}
System.out.println(args[0] + " " + args[1] + " " + args[2] + " = " + result);
}
}
运行结果
补充说明、注意事项、常见错误及踩过的坑
最开始的时候在NumExp.java所在源文件目录下输入命令:java NumExp时显示 错误:找不到或无法加载主类NumExp,如下图所示
从网上搜索答案后:
在包下的类,在Java源文件的地方编译后,需要到外层包的上一级目录下运行,而且类前面需要带包名,以.隔开
所以,我们必须先编译java文件,用javac命令。
用javac命令后按空格再按Tab键会自动补全包目录,再在后面接着输入文件名.java
编译完成之后,再输入java 包名.文件名 后按enter
之后,再输入java 包名.文件名 4 + 5 enter键等逐个进行测试NumberFormatException