自定义异常类的问题
在课程里,定义了一个继承Exception的子类HotelAgeException。类里有一个方法:
public HotelAgeException() {
super("18岁以下,80岁以上的住客必须由亲友陪同");
}
老师,1、这个方法是无参构造吗?因为名字方法名和类名相同。
2、super调用的是父类Exception的方法吗?
3、throw new HotelAgeException();,这抛出的是自定义异常类的实例对象吗?
4、catch里的System.out.println(e.getMessage());老师,e.getMessage();是什么?
5、catch里的System.out.println("酒店前台工作人员不允许办理入住登记");这句话可以跟"18岁以下,80岁以上的住客必须由亲友陪同"写在一起,为什么非要分开写呢?
6、自定义异常属于检查异常还是非检查异常?
正在回答
同学你好,
super(message);调用的是Exception的父类Throwable的带参构造方法,同学这里知道就好,目前无需深入了解。同学想看源码的话,如下图所示:
getMessage方法是获得错误信息,即返回错误信息,返回值需要使用System.out.println();方法进行输出。
super(message);是使用带参构造方法为属性message赋值,只有赋值成功后,才能通过getMessage方法获得错误信息。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,
1、调用的是Exception的带参构造方法,点击查看Exception类,可以看到如下图所示的构造方法,所以,这里调用的是带有异常信息参数的Exception类的构造方法。
2、是的。
3、e.getMessage():只会获得具体的异常名称。比如说空指针异常,就告诉你说是NullPointException。
e.printStackTrace():会打印详细异常,异常名称,出错位置,便于调试用。一般一个异常至少几十行。
同学输入年龄为5,会出现“18岁以下,80岁以上的住客必须由亲友陪同”的提示吗?
提示就是1中传入的message,在调用e.getMessage()之后输出。
4、非检查异常称为:UnchecekedException。那么非检查异常有哪些呢?有:
RuntimeException(即:运行时异常)与其子类,以及错误(Error)。
所以说RuntimeException是非检查异常下的一个分类。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1、是的,同学理解的没错,这个是无参构造。
2、是的,super调用的是父类Exception 的方法。
3、是的,throw new HotelAgeException();是抛出的自定义异常类的实例对象。
4、e.getMessage()作用是获得异常的错误信息
5、同学也可以写在一起呦,老师这里只是想先展示一下抛出异常的错误信息,与后边的执行语句
如果同学觉的放在一起合适,也可以放在一起哦。
6、自定义异常继承Exception 时属于检查异常,如果想定义非检查异常,可使其继承RuntimeException
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星