关于Java异常的十大问题
伙伴们注意了!
小编在这里给大家送上关注福利:
关注“速学Java”公众号即可领取小编精心准备的资料一份!
本文总结了关于Java异常的10个常见问题。
1.检查与未检查
简而言之,检查过的异常必须显式地在方法中捕获或在方法的throw子句中声明。
未检查异常是由无法解决的问题引起的,如除以0、空指针等。
检查异常尤其重要,因为您希望使用您的API的其他开发人员知道如何处理异常。
例如,IOException是一个常用的检查异常,RuntimeException是一个未检查异常。
在阅读其余内容之前,您可以查看Java异常层次结构图。
2. 异常管理的最佳实践
如果一个异常可以被正确处理,那么它应该被捕获,否则,它应该被抛出。
3.为什么try中定义的变量不能用于catch或finally中?
在下面的代码中,try块中声明的字符串s不能在catch子句中使用。
代码没有通过编译。
原因是您不知道在try块的什么地方会抛出异常。
异常很可能是在声明对象之前抛出的。
这个例子是正确的。
4. 为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常?
它们会抛出不同的异常。
这是JDK的问题。
它们是由不同的开发人员开发的,所以不值得过多思考。
5. Java中常用的运行时异常
这里只是其中的一些。
IllegalArgumentException
ArrayIndexOutOfBoundsException
当条件不满足时,可在if语句中使用:
6. 我们能在同一个catch子句中捕获多个异常吗?
答案是肯定的。
只要这些异常类可以追溯到类继承层次结构中的同一个超类,您就只能使用这个超类。
7. 构造函数能抛出java中的异常吗?
答案是肯定的。
构造函数是一种特殊的方法。
下面是一个代码示例。
8. 在final子句中抛出异常
这样做是合法的:
但是为了具有更好的代码可读性,您应该将嵌入的try-catch块包装为一个新方法,然后将方法调用放在finally子句中。
9. 最后块中还能用吗
是的,它可以。
10. 为什么开发人员默默地使用异常?
像下面这样的代码段出现的次数太多了。
如果正确地处理异常是如此重要,那么开发人员为什么要一直这样做呢?
忽视很容易。
频繁出现并不意味着正确。
最后,想学习Java的小伙伴们!
关注“速学java”公众号就可以拿到一份我为大家准备的Java学习资料!
对Java感兴趣的小伙伴也可以加 小编V❤: suxuejava