java程序捕捉异常后怎么重新执行程序

importjava.io.BufferedReader;importjava.io.InputStreamReader;publicclassIoDemo14{publ... import java.io.BufferedReader;
import java.io.InputStreamReader;

public class IoDemo14 {

public static void main(String[] args) throws Exception{
// // 一般字符串向整形转型
// String str = "123";
// int i = Integer.parseInt(str);
// i++;
// System.out.println(i);

//Io流中的String类型向Int类型的转换
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
int i1 = 0;
int i2 = 0;
String str = null;

try {
System.out.println("输入第一个数字:");
str = buf.readLine();
i1 = Integer.parseInt(str);
System.out.println("输入第二个数字:");
str = buf.readLine();
i2 = Integer.parseInt(str);
System.out.println("两数相加之和等于:" + (i1 + i2));
} catch (Exception e) {
System.out.println("输入数据不是数字类型数据请您更改");
}
}
}
此段代码如果输入的不是数字就会出现"输入数据不是数字类型数据请您更改"提示语句。我想请问怎么才能出现提示提示语句后返回到try处从新执行程序?请各位大神指点。
展开
 我来答
yugi111
2015-03-03 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部


import java.io.BufferedReader;
import java.io.InputStreamReader;

public class IoDemo14
{
public static void main ( String[] args ) throws Exception
{
// 定义标记位:表示当前输入的是第几个数字
// 0表示要输入第一个,1表示要输入第二个
int where = 0;
int i1 = 0;
int i2 = 0;
String str = null;
BufferedReader buf = new BufferedReader (new InputStreamReader (System.in));
// 定义一个死循环,但是里面用break改变逻辑,不再死
while (true)
{
try
{
// 输入第一个数字
if (where == 0)
{
System.out.println ("输入第一个数字:");
str = buf.readLine ();
i1 = Integer.parseInt (str);
where = 1;
}
// 输入第二个数字
if (where == 1)
{
System.out.println ("输入第二个数字:");
str = buf.readLine ();
i2 = Integer.parseInt (str);
}
System.out.println ("两数相加之和等于:" + ( i1 + i2 ));
// 关闭读入流
buf.close ();
// 跳出循环
break;
}
// 捕获字符串转数字时的数字格式化异常
catch (NumberFormatException e)
{
System.out.println ("输入数据不是数字类型数据请您更改 !");
// 如果异常发生,结束当前循环,返回继续
continue;
}
}
}
}
// 回答完毕,采纳即可。
qwwqqwwqyear
2015-03-03 · TA获得超过228个赞
知道小有建树答主
回答量:161
采纳率:94%
帮助的人:80.3万
展开全部
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class IoDemo14 {

public static void main(String[] args) throws Exception{
// // 一般字符串向整形转型
// String str = "123";
// int i = Integer.parseInt(str);
// i++;
// System.out.println(i);

//Io流中的String类型向Int类型的转换
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
int i1 = 0;
int i2 = 0;
String str = null;
while(true){
try {
System.out.println("输入第一个数字:");
str = buf.readLine();
i1 = Integer.parseInt(str);
System.out.println("输入第二个数字:");
str = buf.readLine();
i2 = Integer.parseInt(str);
System.out.println("两数相加之和等于:" + (i1 + i2));
break;
} catch (Exception e) {
System.out.println("输入数据不是数字类型数据请您更改");
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
826010478
2015-03-03 · TA获得超过521个赞
知道小有建树答主
回答量:920
采纳率:53%
帮助的人:290万
展开全部
循环不就完了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式