java异常的一个题,帮忙看下下~~

Verkkars 2019-05-29 09:05:23
编写一个除法计算器,从命令行的两个参数,要求只能传入正数,计算两数相除。并且输出结果
1. 判断如果类型不一致,抛出NumberFormatException异常,
2. 整除时为零抛出ArithmeticException异常
3. 如果输入数字为负数,抛出自定义的异常(运行时异常)


public class Counter {
@Test
public void counterException(){

try {
Scanner division = new Scanner(System.in);
System.out.println("请输入一个正数:");
Integer i = division.nextInt();
System.out.println("请输入一个正数:");
Integer j = division.nextInt();
int flag = i / j;
if (!(i instanceof Integer) || !(j instanceof Integer)) {
throw new NumberFormatException("类型不一致");
}
if (flag == 0) {
throw new ArithmeticException();
}
if (i < 0 || j < 0) {
throw new customException("输入的值为负数");
}
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (ArithmeticException e) {
e.printStackTrace();
} catch (customException e) {
e.printStackTrace();
}
}

}


这代码错在哪里?为什么输入错误条件没反应。。
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Verkkars 2019-05-31
  • 打赏
  • 举报
回复
原来是@Test写法缘故,搞得很乱,现在用常规的main方法来实现就好多了
2019-05-30
  • 打赏
  • 举报
回复
你的输出结果是什么呢?

引用 4 楼 Verkkars 的回复:
[quote=引用 1 楼 宵 的回复:]
有反应啊。在控制台的下面会输出那些错误信息。

试下敲个字母看看?[/quote]
你用的什么编译器呢,我的是eclipse,不过我感觉这个应该没有影响啊。
2019-05-30
  • 打赏
  • 举报
回复
引用 4 楼 Verkkars 的回复:
[quote=引用 1 楼 宵 的回复:]
有反应啊。在控制台的下面会输出那些错误信息。

试下敲个字母看看?[/quote]
请输入一个正数:
a
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Counter.counterException(Counter.java:16)
at Counter.main(Counter.java:7)
Unicode Escapes 2019-05-30
  • 打赏
  • 举报
回复
你没看到反应,不代表没有反应。你现在最好启动调试,跟踪代码执行路径
Verkkars 2019-05-30
  • 打赏
  • 举报
回复
引用 6 楼 宵 的回复:
你的输出结果是什么呢?

[quote=引用 4 楼 Verkkars 的回复:]
[quote=引用 1 楼 宵 的回复:]
有反应啊。在控制台的下面会输出那些错误信息。

试下敲个字母看看?[/quote]
你用的什么编译器呢,我的是eclipse,不过我感觉这个应该没有影响啊。
[/quote]
我也是用的eclipse,不知道是不是哪里设置错了?
Verkkars 2019-05-29
  • 打赏
  • 举报
回复
引用 1 楼 宵 的回复:
有反应啊。在控制台的下面会输出那些错误信息。

试下敲个字母看看?
Verkkars 2019-05-29
  • 打赏
  • 举报
回复
引用 2 楼 宵 的回复:
请输入一个正数:
1
请输入一个正数:
-1
customException: 输入的值为负数
at Counter.counterException(Counter.java:27)
at Counter.main(Counter.java:7)

???难道是我编译器坏掉啦?
2019-05-29
  • 打赏
  • 举报
回复
请输入一个正数:
1
请输入一个正数:
-1
customException: 输入的值为负数
at Counter.counterException(Counter.java:27)
at Counter.main(Counter.java:7)
2019-05-29
  • 打赏
  • 举报
回复
有反应啊。在控制台的下面会输出那些错误信息。

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧