自定义异常的问题
我在这里建立了一个自定义异常然后在另一个类中进行测试
这里没有报错
这里报错了
这里也没有报错,请问报错的原因是什么,而且我创建的自定义异常那里为什么有警告?
正在回答 回答被采纳积分+1
你好!下面分别回答你的两个问题:
1、尝试了一下代码,如果catch后面小括号中的内容是下面的运行时异常,是不会报错的。但如果是检查异常比如IOException,如果此时try块中没有内容就会报错。Exception是RuntimeException和IOException的父类,也就是Exception包括了检查异常和运行时异常,所以写Exception没有报错。但是如果是通过继承Throwable自定义的异常,报错的原因和检查异常一样的。Throwable是Exception的父类,继承Throwable的自定义异常应该是当作检查异常处理了,所以try块中必须有内容。
2、Serializable是一个序列化的接口,实现序列化接口主要是为了保存在内存中的各种对象的状态。将在后面的输入输出流课程中介绍,到时候可以再理解一下这个接口。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学你好,1、这里自定义的异常类需要先throw抛出,才能捕获哦,例如:
因为如果没有throw new Test2(); 程序中的报错信息为
Unreachable catch block for Test2. This exception is never thrown from the try statement body-->Test2的无法到达的catch块。这个异常永远不会从try语句主体中抛出
因为没有Test2的异常产生,对应在catch中也就不能捕获这个异常哟!
2、这里报出的警告信息是:The serializable class Test2 does not declare a static final serialVersionUID field of type long-->可序列化类Test2不声明类型为long的静态最终serialVersionUID字段!
当一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义它。 这里 Throwable实现了Serializable 接口,对应在Eclipse中就会提示可以定义的这个警告!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星