java - 将InputMismatchException转换为用户定义的异常

标签 java exception try-catch

我希望我的代码将 InputMismatchException 的名称更改为 NotANumberException。 这是我的代码,如果我输入非数字字符,它会形成错误。我该如何解决这个问题?

主类:

import java.util.*;

public class Grade {

    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        int grade;
        String remark;
        try{
            System.out.print("Enter Grade: ");
            grade = input.nextInt();
        }
        catch(NotANumberException e){
            System.out.println(e.notgetMessage());
        }
    }
}

第二类:

import java.util.*;

public class NotANumberException extends InputMismatchException{

   public String notgetMessage(){
      return "You did not input a number. Please try again!";
   }

}

最佳答案

您必须捕获 Scanner 类实际引发的异常,然后对其执行某些操作,例如创建并引发自定义异常。

    catch(InputMismatchException e){
        throw new NotANumberException(e);
    }

关于java - 将InputMismatchException转换为用户定义的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653892/

相关文章:

c++ - RAII 不能真正保证防止资源泄漏,可以吗?

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

java - 我可以在不嵌套 try 语句的情况下尝试多项操作吗?

java - 从 Activity 以外的类访问 Application 类

java - 如何从谷歌驱动器直接下载链接获取文件扩展名?

java - 使用executeUpdate 处理结果集时出现问题

java - 具有 Spring Boot 和事务边界的 graphql-spqr

spring-boot - 如何使用 kotlin.logging 记录堆栈跟踪?

php - 如何捕捉 fatal error : Maximum execution time of 30 seconds exceeded in PHP

c++ - try catch 对 char** 返回值有影响