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

来源:互联网 发布:mac强制关掉进程 编辑:程序博客网 时间:2024/06/18 09:49
  • 我们可以在同一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();}

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

机翻水平,求轻喷
原地址:点这儿

0 0
原创粉丝点击