当前位置: 首页 > 知识库问答 >
问题:

如何做出异常通知用户他们输入的数字超出范围?

姬和歌
2023-03-14
public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    int answer = 28;
    int attempts = 0;
    boolean condition = false;

    System.out.println("Guess a Number 1 - 50:");
    
    do {
        condition = true;
        try {
            int input = scan.nextInt();
            scan.nextLine();
            
            if(input > answer) {
                System.out.println("Too Big");
                System.out.println(); //Spacing
                System.out.println("Guess a Number 1 - 50:");
                attempts++;
            } else if (input < answer) {
                System.out.println("Too Small");
                System.out.println(); //Spacing
                System.out.println("Guess a Number 1 - 50:");
                attempts++;
            } else {
                int totalA = attempts + 1;
                System.out.println(); //Spacing
                System.out.println("Congratulations! "+ "You attempted " + totalA + " times." );
            } 
            
        } catch (InputMismatchException e) {
            System.out.println("Numbers only");
            System.out.println(); //Spacing
            System.out.println("Guess a Number 1 - 50:");
            condition = true;
            scan.nextLine();
        } 
        
    } while(condition);



}

共有1个答案

叶建柏
2023-03-14

我认为非常重要的一点是,您应该知道可以创建自己的exception类,这些类具有特定的消息和用途。

例如:

public class NumberTooHighException extends Exception { 
    public NumberTooHighException() {
        super("The number inputted is wayyyy to high...");
    }
}

然后,您可以将异常与其他异常一样使用:

if(input > 50)
{
    throw new NumberTooHighException(); // Here you throw it...
}
 类似资料:
  • 问题内容: 我有以下代码: 我的索引超出范围错误,我不知道为什么。我声明了大小为10的尺寸。为什么会出现此错误? 问题答案: 您声明了一个,其初始容量为10个元素,但没有向此列表中添加元素,即列表为空。将替换现有元素,但是由于列表中没有元素,因此将引发异常。您必须使用方法在之前添加元素。 表示列表内部维护的数组的开头大小为10。在列表中添加更多元素时,此内部数组的大小可能会更改。

  • 问题内容: 因此,我正在编写一个简单的程序来输入字符串并计算总数。的米 所以,这是我的代码 where 和str是我接受过的字符串,但是此错误不断出现 这是什么错误以及如何将其删除? 问题答案: 字符串,有效索引从0到n-1; 更改 至

  • 问题内容: 从类中调用函数时出现以下错误:java.lang.StringIndexOutOfBoundsException:超出范围的字符串索引:-1尽管我使用系统打印来查看输入的内容,但仍在substring()函数中进行传递似乎是正确的。函数isContained()返回一个布尔值,该值定义作为参数传递的子字符串是否在单词列表中。我的代码是: 其中size是我在函数中传递的字符串(str)的

  • 问题内容: 我写了这个小函数只是为了练习,但是抛出了一个异常(“字符串索引超出范围:29”),我不知道为什么… (我知道这不是编写此函数的最佳方法,可以使用正则表达式。) 这是代码: 问题答案: 您是否正在从其他语言翻译此代码?您要遍历字符串,直到到达空字符(),但Java通常不会在字符串中使用这些字符。在C语言中,这可以工作,但是在您的情况下,您应该尝试 代替 此外, 如果您期望的是,在代码末尾

  • 任务是“编写一个程序,为用户输入的整数显示用户指示的倍数。” 我想我不需要一个完全直接的答案(尽管我确实想知道要使用的方法/公式),因为我想把这个作为一个学习经验,以便自己完成任务并从中学习。我真的想知道的过程和使用的方法,以及找到一个公式。: 我真的不确定如何编写一个代码,显示一个用户输入的整数的用户输入的数字。最难的部分似乎是编写循环公式。不知道从哪里开始。 到目前为止,我已经: 我真的不确定

  • 我使用Sqoop将数据从SQL server导入到本地HDF。我使用一个简单的自由形式查询从表中提取大约10行。下面是我从终端执行的sqoop命令: 当我从本地计算机执行此操作时,会出现以下异常: 原因:com。微软sqlserver。jdbc。SQLServerException:索引2超出范围。在com。微软sqlserver。jdbc。SQLServerException。在com上生成fr