您的位置:首页 > 编程语言 > Java开发

关于Java异常10件事儿<下>20170511

2017-05-11 11:53 260 查看
我们可以在同一catch子句中捕获多个异常吗?

是的,只要这些异常类可以追溯到类继承层次结构中的同一个超类,那么只能使用该超类。

java可以在构造器中抛出异常吗?

是的,构造函数是一种特殊的方法。 这是一个代码示例。

在finally块里抛出异常

这是可以通过编译的。

public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
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("path1");
File file2 = new File("path2");
try {

FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
methodThrowException();
}
}


return可以在finally块里吗?

可以。

为什么开发者会默默地处理异常?

下面的代码出线过很多次,如果正确处理异常非常重要,那么为什么开发人员会继续这样写代码呢?

try {
...
} catch(Exception e) {
e.printStackTrace();
}


忽视是很容易的。频繁出现并不意味着正确。

机翻水平,求轻喷

原地址:点这儿
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 异常