重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是Java异常的常见面试题和答案。小编觉得挺实用的,因此分享给大家学习。如下资料是关于设置环境变量的内容。
铁东ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!1.已检查与未检查
简而言之,必须在方法中显式捕获已检查的异常,或在方法的throws子句中声明该异常。未检查的异常是由无法解决的问题引起的,例如被零除,空指针等。检查的异常特别重要,因为你希望使用API的其他开发人员知道如何处理异常。
例如,IOException是一个常用的已检查异常,而RuntimeException是一个未检查的异常。你可以在阅读其余内容之前先检查一下Java异常层次结构图。
2.异常管理的最佳实践
如果可以正确处理异常,则应将其捕获,否则应将其引发。
3.为什么在try中定义的变量不能用于catch或final?
在以下代码中,在try块中声明的字符串s不能在catch子句中使用。该代码不通过编译。
try {
File file = new File("path");
FileInputStream fis = new FileInputStream(file);
String s = "inside";
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println(s);
}
原因是你不知道在try块中的哪个位置会引发异常。很有可能在声明对象之前引发了异常。对于此特定示例,这是正确的。
4.为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常?
他们实际上抛出了不同的异常。这是JDK的问题。它们是由不同的开发人员开发的,因此不值得过多思考。
Integer.parseInt(null);
// throws java.lang.NumberFormatException: null
Double.parseDouble(null);
// throws java.lang.NullPointerException
这里只是其中一些。
IllegalArgumentException
ArrayIndexOutOfBoundsException
当不满足条件时,可以在if语句中使用它们,如下所示:
if (obj == null) {
throw new IllegalArgumentException("obj can not be null");
6.我们可以在同一个catch子句中捕获多个异常吗?
答案是肯定的。只要这些异常类可以追溯到类继承层次结构中的同一超类,就只能使用该超类。
7.构造函数可以在Java中引发异常吗?
答案是肯定的。构造函数是一种特殊的方法。这是一个代码示例。
8.在最后一个子句中引发异常
进行以下操作是合法的:
public static void main(String[] args) {
File file1 = new File("path2");
File file2 = new File("path3");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
FileInputStream fis = new FileInputStream(file2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
但是,为了获得更好的代码可读性,你应该将嵌入式try-catch块包装为新方法,然后将方法调用放在finally子句中。
public static void main(String[] args) {
File file1 = new File("path2");
File file2 = new File("path3");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
methodThrowException();
}
}
9.可以在finally块中使用
是的,它可以。
10.为什么开发人员会默默使用异常?
发生了许多类似以下的时间代码段。如果正确处理异常非常重要,为什么开发人员会继续这样做呢?
try {
...
} catch(Exception e) {
e.printStackTrace();
}
关于Java异常的常见面试题和答案就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。