- 我们可以在同一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();
}
忽视是很容易的。频繁出现并不意味着正确。
机翻水平,求轻喷
原地址:点这儿