java中的try-catch-finally中的问题

问题描述:

就是在java中,比如要求两个数的余数的简单例子。
public class task2 {
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
int a,b,c;
try {
while(true)
{
a=s.nextInt();
b=s.nextInt();
c=a%b;
System.out.println("余数为:"+c);
}
} catch (Exception e) {
System.out.println("输入有误,请重新输入,只能输入数字,并且除数不能为0");
}
}
}
这样只能是在输入正确的情况下,不断地输入,如果捕获了异常,就不能继续输入,
不要说while()放外面,因为while()循环的是数据,而不是一直捕获异常~~
求大神帮助~~~

 boolean r = true;
try {
while(r)
{
r = false;
a=s.nextInt();
b=s.nextInt();
c=a%b;
System.out.println("余数为:"+c);
}
} catch (Exception e) {
System.out.println("输入有误,请重新输入,只能输入数字,并且除数不能为0");
r = true;
}

参考文章:
http://www.cnblogs.com/lanxuezaipiao/p/3440471.html

参考文章,作者很用心,写的很详细。值得学习。

try {
语句 A
} catch (Exception e){
语句B
} finally {
语句C
}

语句A或B中有return,而语句C中无return,则为执行了A或B中的re......
答案就在这里:java try catch finally中的return问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

你这里的异常是需要自己定义的,不能直接用exception

这种问题你可以换一种捕获异常的方式:

import java.util.Scanner;

public class task2 {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int a, b, c;

    while (true) {
        a = s.nextInt();
        b = s.nextInt();
        try {
            c = a % b;
            System.out.println("余数为:" + c);
        } catch (Exception e) {
            System.out.println("输入有误,请重新输入,只能输入数字,并且除数不能为0");
        }

    }
}

}
**


思路是while循环中设置一个变量,,控制其循环

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
while (true) {
System.out.println("请输入被除数");
int a = sc.nextInt();
System.out.println("请输入出入");
int b = sc.nextInt();
try {
float c = a % b;
System.out.println(c);
} catch (Exception e) {
System.out.println("输入有误,请重新输入,只能输入数字,并且除数不能为0");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}