JAVA中解决输入数据不符合规则问题
在编写代码程序运行的过程中,我们难免有很多时候需要手动输入数据,但只要需要输入数据就可能出现数据不符合规范的问题(即使我们提醒过用户该如何输入数据),但如果不小心输入错误输入就可能会导致整个程序报错而停止运行,当遇到这种问题时确实会让人头疼。
为了解决这个问题从而提高程序的健壮性,我们需要找到解决办法,不能放任不管,那我用的比较简单的方法就是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中解决输入数据不符合规则问题相关推荐
- java中解决组件重叠的问题(例如鼠标移动组件时)
java中解决组件覆盖的问题! 有时候在移动组件的时候会出现两个组件覆盖的情况,但是你想让被覆盖的组件显示出来或者不被覆盖! 在设计GUI时已经可以定义组件的叠放次序了(按摆放组件的先后顺序 ...
- JAVA中解决Filter过滤掉css,js,图片文件等问题
JAVA中解决Filter过滤掉css,js,图片文件等问题 参考文章: (1)JAVA中解决Filter过滤掉css,js,图片文件等问题 (2)https://www.cnblogs.com/er ...
- 【笔记】Java中使用变量的规则(使用变量,遵循就近原则)、成员变量和局部变量的区别
文章目录 一.使用变量的规则 二.成员变量和局部变量的区别 一.使用变量的规则 最终输出的是"小黑正在努力学习" 使用变量,遵循就近原则 例:将上述代码敲一遍 Student部分 ...
- java中的默认排序规则,C#中列表,集合排序Sort,OrderBy与Java排序规则默认不一致...
最近遇到一个排序小问题,java中的sort与C#中的Sort排出来结果不一样.后面写了两段小代码,结果确实不一样.var list2 = new List() { "AA",&q ...
- Java中解决继承和接口默认方法冲突
1)超类优先.如果超类提供了一个具体方法,同名而且有相同参数类型发默认方法会被忽略. 2)接口冲突.如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型(不论是否是默认参数)相同的方 ...
- java mysql排序规则_在Java中使用MySQL排序规则
精简版 我目前正在研究MySQL排序规则的问题以及它们如何影响一组值(使用Hibernate映射,但现在这不重要).我希望使用与MySQL使用相同的排序规则来设置一组字符串.例如.我希望"f ...
- java中包命名常见规则
做java的都知道java的包.类.接口.枚举.方法.常量.变量等等模型都有一套约定的命名规则! 学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格.一来显示自己的专业.二来方便阅读 ...
- java中的switch的规则_Java基础语法
switch分支 switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. switch语法格式如下: switch(expression){ case value : //语句 ...
- java中解决脏读_java并发编程学习之脏读代码示例及处理
使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即 ...
最新文章
- 十五周 苏浪浪 201771010120
- 11. Leetcode 713. 乘积小于K的子数组 (数组-同向双指针-滑动窗口)
- 系统幂等性设计与实践
- myeclipse 8.5-9.0 安装 svn 方法 《转载》
- 通用计划明年推出自动驾驶出租车共享服务,可定制化设计车辆
- js重新渲染div_前端工程师必备:从浏览器的渲染到性能优化
- nginx配置url重写
- 华为Mate 50系列明年初发布:麒麟990/骁龙8 Gen1加持
- linux系统组成之小型RedHat little linux制作二
- StreamSets sdc rpc 测试
- 未能加载文件或程序集“****”或它的某一个依赖项。试图加载格式不正确的程序。解决方案总结...
- 在eclipse中查看android SDK的源代码
- JSP毕业设计源码带论文和答辩、大作业、实例程序源码下载合集【10套】
- vue particles.js 登录背景实现粒子动效
- 文档数据库与关系数据库的比较
- 如何快速实现人脸识别通道?一文了解具体技巧
- qq相册传照片显示服务器,我QQ像册传照片了可图标还是灰色的怎么办 – 手机爱问...
- 【迷失岛游戏框架开发个人每集总结(第三期)】
- JPK Data Processing AFM数据处理
- 【视频码率相关笔记】