深入理解try、catch、finally、throws、throw这五个关键字 下面来看看这五个关键字在异常机制中的用法和需要注意的地方。1、try、catch、finally try关键字用于包围可能引发异常的逻辑代码。它们不能单独使用,必须与catch或finally结合使用。Java编译器允许的唯一组合是以下三种形式: try...catch...;尝试……终于……;尝试....抓住...最后。.. 当然可以有多个catch块,注意try块只能有一个,finally块是可选的(但finally块最多只能有一个)。 三个block的执行顺序是try—>catch—>finally。 当然,如果没有异常发生,catch块是不会执行的。但是不管什么情况finally块都会被执行(这一点要非常小心,所以在某些情况下,释放资源的操作会在finally块中进行)。 当有多个catch块时,按照catch块的先后顺序进行匹配。一旦异常类型被一个catch块匹配到,它就不会被后面的catch块匹配到。 在使用try..catch..finally块时,注意不要在finally块中使用return,因为finally中的return会覆盖已有的返回值。让我们看一个示例:打开文件();System.out.println(str);}publicStringopenFile(){try{FileInputStreaminputStream=newFileInputStream("d:/a.txt");intch=inputStream.read();系统输出。println("aaa");返回“第一步”;}catch(FileNotFoundExceptione){System.out.println("找不到文件");返回“步骤2”;}catch(IOExceptione){System.out.println("io异常");返回“第三步”;}finally{System.out.println("终于阻塞");//返回“最后”;}}} 该程序的输出为: 可以看出,try块中出现FileNotFoundException后,跳转到第一个catch块,打印“文件未找到”信息,并赋值“step2”到返回值,然后执行finally块,最后返回返回值。
