catch异常后,如何实现让用户重新输入正确数据
package com.imooc.test; import java.util.InputMismatchException; import java.util.Scanner; public class TryOne { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("==========计算开始================"); System.out.println("请输入第一个数"); try { int a=input.nextInt(); System.out.println("请输入第二个数"); int b=input.nextInt(); System.out.println("a/b的结果是:"+a/b); }catch(InputMismatchException e) { System.out.println("请输入正整数!!"); }catch(ArithmeticException e) { System.out.println("除数不能为0!!!"); }catch(Exception e) { e.printStackTrace(); }finally{ System.out.println("==========计算结束================"); } } } 比如这个程序中如果用户输入除数是非数字,除数为0,除了捕获异常外,提示用户重新输入正确的数据,让 程序继续运行
11
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小班
2019-05-07 14:56:54
同学你好,当捕获异常后,如果要实现重新输入,必须在一个循环条件下,例如:
public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("==========计算开始================"); System.out.println("请输入第一个数"); while(true){ // 1 添加一个循环,输入第一个数,如果不出现异常就跳出循环,出现异常就重新输入 try { int a=input.nextInt(); int b; while(true){// 2 添加一个循环,输入第二个数,如果不出现异常就跳出循环,出现异常就重新输入 try{ System.out.println("请输入第二个数"); b=input.nextInt(); System.out.println("a/b的结果是:"+a/b); break; //执行完毕,跳出循环2 }catch (ArithmeticException e) { System.out.println("除数不能为0!!!"); continue; } } break; //跳出循环 1 }catch(InputMismatchException e) { System.out.println("请输入正整数!!"); input.next(); continue; }catch(Exception e) { e.printStackTrace(); input.next(); continue; }/*finally{ //注释结束语句,否则每次都要输出 System.out.println("==========计算结束================"); }*/ } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星