永发信息网

java中用try如果catch到异常,怎么把这个异常处理掉让程序继续运行

答案:6  悬赏:60  手机版
解决时间 2021-02-18 02:33
java中用try如果catch到异常,怎么把这个异常处理掉让程序继续运行
最佳答案
需要先将Scanner内的输入清楚,不然就重复读取了。简单调用Scanner 的next()方法就可以了

测试已通过
package zhidao;
import java.util.Scanner;
public class Retry {
private int myInt;
private Scanner myScanner = new Scanner(System.in);
public int getInt() {
try {
System.out.println("请输入法整数");
this.myInt = this.myScanner.nextInt();
} catch (Exception e) {
System.out.println("输入错误,请输入正确的数值!!!");
this.myScanner.next();
this.getInt();
}
return this.myInt;
}
public static void main(String[] args) {
Retry retry = new Retry();
System.out.println(retry.getInt());
}
}
全部回答
你要的肯定不能实现,因为发生异常证明程序出错了,你还要让它重新跑,那不还是异常。所以不管你怎么处理都是死循环
你在catch中可以调动getint()这个方法(但通常情况下没的你这么搞的。)。如果非要这样也行,为了不让死循环,只有在catch中处理掉异常保证下次调用方法时,不会发生异常才可以。
throw e就行了,要不然你就 价格finally{return this.myInt;}就行了!
不需要在catch中重新调这个方法,可以return -1,调方法处判断返回的值是否正确,不正确在重新调用方法即可!
public static void main(String[] args){
int i = getInt();
if(i==-1){
i = getInt();
}
System.out.println("您输入的数值是:"+i);
}

public static int getInt(){
int i = 0;
Scanner s = new Scanner(System.in);
try{
i = s.nextInt();
}catch(Exception e){
System.out.println("输入错误,请输入正确的数值");
return i=-1;
}
return i;
}
不用处理,不需要这些功能就是了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小王在2012年“十一”举办婚礼。他在“五一”
我的手机原装充电器是1a 如果用2a的充电器充
如何通过js将styles下的Z-index=9600设置更大
狗狗不停的伸舌头舔嘴巴,嘴巴周围都泛红是怎
低版本安卓手机能刷到高版本么?
成安中国黄金地址在什么地方,想过去办事
世界上有没有独一无二的东西?
如何面对困难的挑战?
我朋友女,1980年农历正月初一下午6点出生的
几个债权人对一个债务人,债务人工资冻结,但
it is the third time that you missed the l
苹果有好玩的相机app吗
图吧导航离线版2015激活码
【家有阳光】我家盖房子 距离前排房子多远才
我现在有一块成块的普洱掰不开,应该怎么弄啊
推荐资讯
什么是企业征信报告? 企业征信报告有哪几种
670万美元等于人民币多少钱
梳银发艺地址在什么地方,想过去办事
连云港仕贝林药业有限公司这个地址在什么地方
983738997他说是恋舞OL客服,然后说我中奖了
已知克重175G/M2幅宽200CM单价37元/KG,求单价
你姨夫的姐姐的堂兄的表哥的爸爸是你什么人?
小米5怎么做android studio 2.2的调试机
乘风驾校(万安训练场)地址在什么地方,想过去
小燕子画室地址在什么地方,想过去办事
白山市开山经贸有限公司我想知道这个在什么地
【电热丝电流】一台设备中,电热丝功率为15KW,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?