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

publicintgetInt(){try{System.out.println("请输入法整数");this.myInt=this.myScanner.nextInt(... public int getInt() {
try {
System.out.println("请输入法整数");
this.myInt = this.myScanner.nextInt();
}
catch (Exception e) {
System.out.println("输入错误,请输入正确的数值!!!");
this.getInt();
}
return this.myInt;

就像这个例子,catch异常,我就想让方法重新运行一次。
但由于异常已经产生,就会形成一个死循环,请问怎么处理。
展开
 我来答
jackson王子
2013-03-26 · TA获得超过354个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:129万
展开全部

需要先将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());

}

}

来自雕塑园干练的藏狼
2013-03-26 · TA获得超过111个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:90.8万
展开全部
不需要在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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanunique
2013-03-26 · TA获得超过159个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:155万
展开全部
你在catch中可以调动getint()这个方法(但通常情况下没的你这么搞的。)。如果非要这样也行,为了不让死循环,只有在catch中处理掉异常保证下次调用方法时,不会发生异常才可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-26
展开全部
public int getInt() {
while(true)

try {
System.out.print("请输入法整数");
this.myScanner = new java.util.Scanner(System.in);// 重新初始化

this.myInt = this.myScanner.nextInt();
return this.myInt ;

}catch (Exception e) {
System.out.println("输入错误,请输入正确的数值!!!");
}

}
}

只是一个例子,请参考。还可以有别的情况的返回,例如输入3次错误等
追问
这个办法也很好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happy2012zjh
2013-03-26 · TA获得超过273个赞
知道小有建树答主
回答量:1197
采纳率:100%
帮助的人:516万
展开全部
你要的肯定不能实现,因为发生异常证明程序出错了,你还要让它重新跑,那不还是异常。所以不管你怎么处理都是死循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式