首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常处理

异常处理
EN

Stack Overflow用户
提问于 2017-02-20 14:00:14
回答 1查看 40关注 0票数 0

我希望它允许用户在输入错误后输入两个int。我尝试在catch块中继续,但它只抛出运行时错误。我只想让它在抛出错误后返回到main方法的顶部。看看图片中它是如何不允许用户输入任何数字的。我想修好那部分。

这是代码。这只是为了练习。

代码语言:javascript
复制
/**
practing exceptions, example 1 in book for exceptions 
*/ 

    import java.util.Scanner;

    public class PracticeExceptions extends Exception {

    public static void main(String[] args)
    {
     String response = "y";
     Scanner keyboard = new Scanner(System.in);

     do{ 
     int n1, n2;
     double r;
     System.out.println("Please enter two numbers");

     try{
            n1 = keyboard.nextInt();
            n2 = keyboard.nextInt();
            r = (double) n1/n2;     

        System.out.format("Your answer: %.2f %n", r);

       }catch(Exception a){

       System.out.println("Invaild input please try again");

       }

       System.out.println("Again (y/n)");
       response = keyboard.next();

       }while(response.equalsIgnoreCase("y"));
     }
   }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-20 14:09:49

删除扫描仪缓冲区中的无效输入

代码语言:javascript
复制
 }catch(Exception a){
    System.out.println("Invalid input please try again");
    keyboard.next();
 }

代码现在将下拉到System.out.println("Again (y/n)");

如果您希望循环回到顶部,请在keyboard.next();之后添加一个continue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42337449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档