在编写代码程序运行的过程中,我们难免有很多时候需要手动输入数据,但只要需要输入数据就可能出现数据不符合规范的问题(即使我们提醒过用户该如何输入数据),但如果不小心输入错误输入就可能会导致整个程序报错而停止运行,当遇到这种问题时确实会让人头疼。

为了解决这个问题从而提高程序的健壮性,我们需要找到解决办法,不能放任不管,那我用的比较简单的方法就是trycatch语句:

public static int Input(int num){//输入数据并能处理不符合规则的数据,提高程序的健壮性while(true){try{num=s.nextInt();return num;}catch (Exception e){System.out.println("输入格式错误,请重新输入");s=new Scanner(System.in);}}}

将可能出现问题的代码放入Try语句中,再将可能出现问题放入catch()内,这里使用的是 Exception是因为其是一个大类,内部包含了许多子类,用其可以解决较多问题,但我们这里会出现的问题一般的是数据输入不符合规则的问题,也可以使用InputMismatchException,然后在catch(){}大括号内写上处理该问题的代码。我这里使用的是while循环来处理该问题,若输入一直不符合规则则一直运行并提示错误。最后只需要在测试类中使用即可:

int a=Input(a);

import java.util.Arrays;
import java.util.Scanner;public class Practice {static Scanner s = new Scanner(System.in);public static void main(String[] args) {int x=0;x = Input(x);System.out.println(x);}public static int Input(int num) {//输入数据并能处理不符合规则的数据,提高程序的健壮性while (true) {try {num = s.nextInt();return num;} catch (Exception e) {System.out.println("输入格式错误,请重新输入");s = new Scanner(System.in);}}}
}

JAVA中解决输入数据不符合规则问题相关推荐

  1. java中解决组件重叠的问题(例如鼠标移动组件时)

    java中解决组件覆盖的问题!      有时候在移动组件的时候会出现两个组件覆盖的情况,但是你想让被覆盖的组件显示出来或者不被覆盖! 在设计GUI时已经可以定义组件的叠放次序了(按摆放组件的先后顺序 ...

  2. JAVA中解决Filter过滤掉css,js,图片文件等问题

    JAVA中解决Filter过滤掉css,js,图片文件等问题 参考文章: (1)JAVA中解决Filter过滤掉css,js,图片文件等问题 (2)https://www.cnblogs.com/er ...

  3. 【笔记】Java中使用变量的规则(使用变量,遵循就近原则)、成员变量和局部变量的区别

    文章目录 一.使用变量的规则 二.成员变量和局部变量的区别 一.使用变量的规则 最终输出的是"小黑正在努力学习" 使用变量,遵循就近原则 例:将上述代码敲一遍 Student部分 ...

  4. java中的默认排序规则,C#中列表,集合排序Sort,OrderBy与Java排序规则默认不一致...

    最近遇到一个排序小问题,java中的sort与C#中的Sort排出来结果不一样.后面写了两段小代码,结果确实不一样.var list2 = new List() { "AA",&q ...

  5. Java中解决继承和接口默认方法冲突

    1)超类优先.如果超类提供了一个具体方法,同名而且有相同参数类型发默认方法会被忽略. 2)接口冲突.如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型(不论是否是默认参数)相同的方 ...

  6. java mysql排序规则_在Java中使用MySQL排序规则

    精简版 我目前正在研究MySQL排序规则的问题以及它们如何影响一组值(使用Hibernate映射,但现在这不重要).我希望使用与MySQL使用相同的排序规则来设置一组字符串.例如.我希望"f ...

  7. java中包命名常见规则

    做java的都知道java的包.类.接口.枚举.方法.常量.变量等等模型都有一套约定的命名规则! 学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格.一来显示自己的专业.二来方便阅读 ...

  8. java中的switch的规则_Java基础语法

    switch分支 switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. switch语法格式如下: switch(expression){ case value : //语句 ...

  9. java中解决脏读_java并发编程学习之脏读代码示例及处理

    使用interrupt()中断线程     当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即 ...

最新文章

  1. 十五周 苏浪浪 201771010120
  2. 11. Leetcode 713. 乘积小于K的子数组 (数组-同向双指针-滑动窗口)
  3. 系统幂等性设计与实践
  4. myeclipse 8.5-9.0 安装 svn 方法 《转载》
  5. 通用计划明年推出自动驾驶出租车共享服务,可定制化设计车辆
  6. js重新渲染div_前端工程师必备:从浏览器的渲染到性能优化
  7. nginx配置url重写
  8. 华为Mate 50系列明年初发布:麒麟990/骁龙8 Gen1加持
  9. linux系统组成之小型RedHat little linux制作二
  10. StreamSets sdc rpc 测试
  11. 未能加载文件或程序集“****”或它的某一个依赖项。试图加载格式不正确的程序。解决方案总结...
  12. 在eclipse中查看android SDK的源代码
  13. JSP毕业设计源码带论文和答辩、大作业、实例程序源码下载合集【10套】
  14. vue particles.js 登录背景实现粒子动效
  15. 文档数据库与关系数据库的比较
  16. 如何快速实现人脸识别通道?一文了解具体技巧
  17. qq相册传照片显示服务器,我QQ像册传照片了可图标还是灰色的怎么办 – 手机爱问...
  18. 【迷失岛游戏框架开发个人每集总结(第三期)】
  19. JPK Data Processing AFM数据处理
  20. 【视频码率相关笔记】

热门文章

  1. 按键修改阈值功能、报警功能、空气质量功能实现(STM32)
  2. autorun.inf文件命令解释
  3. 多目标追踪小抄:快速了解MOT的基本概念
  4. 我国各省单位GDP能耗(2005-2020)
  5. 回顾与展望2022-07-12_04-06-59
  6. 【ZOJ - 2116】Christopher's Christmas Letter(Lucas)
  7. 突然想起曾经到天下图腾面试的情景
  8. 问答系统QA--综述
  9. 最全的国内外IT学习网站和工具(自己总结的)
  10. 洗碗机哪个品牌好?松下洗碗机质量怎么样?这款洗碗机买了不后悔