Java异常的getmessage方法


package pck01;
import java.util.InputMismatchException;
import java.util.Scanner;
public class b {
    public static void main(String[] args) {
        int age;
        Scanner input = new Scanner(System.in);
        System.out.println("请输入您的年龄:");
        try {
            age = input.nextInt();    // 获取年龄
            if(age < 0) {
                throw new a("您输入的年龄为负数!输入有误!");
            } else if(age > 100) {
                throw new a("您输入的年龄大于100!输入有误!");
            } else {
                System.out.println("您的年龄为:"+age);
            }
        } catch(InputMismatchException e1) {
            System.out.println("输入的年龄不是数字!");
        } catch(a e2) {
            //String str=e2.getMessage();
           System.out.println(str);
        }
    }
}
package pck01;
//import java.lang;
public class a extends Exception {
    public a() {
        super();
    }
    public a(String str) {
        super(str);
    }
}

上面注释的getmessage是干什么用的、为什么有没有这一句当输入-8时输出结果一样

  • 注释那句作用是获取异常信息
  • 输入-8,走了小于 0 的 分支,都是抛出异常

这些都是 Java语言里关于分支和异常的知识,属于基础知识,建议先找资料系统性学习一遍

【以下回答由 GPT 生成】

getMessage()方法是用来获取异常对象中的错误信息的。在上述代码中,当输入年龄为负数时抛出了自定义的异常a对象并传入了错误信息作为参数,通过getMessage()方法可以获取到这个错误信息并打印出来。当输入-8时,输出结果一样是因为在代码中通过throw new a("您输入的年龄为负数!输入有误!");抛出了一个自定义异常a对象,并将错误信息传递给了该异常对象。在catch(a e2)块中通过e2.getMessage()获取到了该错误信息并打印出来。所以无论是输入-8还是其他负数,最终都会输出"您输入的年龄为负数!输入有误!"。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^