catch异常后,如何实现让用户重新输入正确数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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
同学你好,当捕获异常后,如果要实现重新输入,必须在一个循环条件下,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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积分~
来为老师/同学的回答评分吧