第5章Java例外处理 H 程序中增加了对例外的处理语句后,就顺利通过 了编译。 catch语句的执行顺序是先捕获最特殊的异常, 之后逐渐一般化,因为, IOException是 FilenotFoundException的父类。 Java允许用户捕获实际需要捕获的异常类的超类, 所以,一个 catch语句就可以同时捕获多种异常。这样, 例53中的 I try-catch语句又可以改写为 )catch (Exception e) System. out. pritnIn ("The error is: +e. getMessageo);
第5章 Java例外处理 程序中增加了对例外的处理语句后,就顺利通过 了编译。catch语句的执行顺序是先捕获最特殊的异常, 之后逐渐一般化,因为,IOException是 FileNotFoundException的父类。 Java允许用户捕获实际需要捕获的异常类的超类, 所以,一个catch语句就可以同时捕获多种异常。这样, 例5.3中的try-catch语句又可以改写为 try {... }catch(Exception e) { System.out.pritnln("The error is: "+e.getMessage());}
第5章Java例外处理 H 因为 Exception类是 FilenotFoundException类和 IOException类的超类,所以对一段可能抛出大量不同 类型的异常的程序来说,逐个捕获处理异常可能会较 繁琐,而仅仅捕获它们父类的异常则会较方便。实际 使用中,需要避免捕获最一般的异常类型(即超类 Exception),因为捕获最一般的异常使得用户往往不能 确切地判断异常的具体类型并作出相应的处理。针对 例53,如果try- catch语句写为
第5章 Java例外处理 因为Exception类是FileNotFoundException类和 IOException类的超类,所以对一段可能抛出大量不同 类型的异常的程序来说,逐个捕获处理异常可能会较 繁琐,而仅仅捕获它们父类的异常则会较方便。实际 使用中,需要避免捕获最一般的异常类型(即超类 Exception),因为捕获最一般的异常使得用户往往不能 确切地判断异常的具体类型并作出相应的处理。针对 例5.3,如果try-catch语句写为
第5章Java例外处理 H try i ) catch (Exception e) System. out. pritnIn("The error is: +e. getMessageo) 3 catch(IOException e) System. out. println ("The error is: +e) 3 catch(FileNotFound Exception e)& System. out. println(" the error S +e.getMessageO) e printstackTrace(System. out);)
第5章 Java例外处理 try { ... }catch(Exception e) { System.out.pritnln("The error is: "+e.getMessage()); } catch(IOException e) { System.out.println("The error is: "+e); } catch (FileNotFoundException e){ System.out.println("The error is: "+e.getMessage()); e.printStackTrace(System.out); }
第5章Java例外处理 H 则该异常的后两个 catch捕获语句会始终匹配不到, 造成编译器的混乱。所以说,捕获异常的顺序是和 catch语句顺序相关的,希望读者注意它的用法 与异常处理语句 try-catch相关的另一条语句是 finally语句。它为例外处理提供一个统一的出口,使得 在控制流转到程序的其他部分以前,能够对程序的状 态作统一的管理,比如关闭文件或释放其他系统资源 实际使用中fnly紧接于 try-catch语句的最后一个 catch 块,基本语法如下:
第5章 Java例外处理 则该异常的后两个catch捕获语句会始终匹配不到, 造成编译器的混乱。所以说,捕获异常的顺序是和 catch语句顺序相关的,希望读者注意它的用法。 与异常处理语句try-catch相关的另一条语句是 finally语句。它为例外处理提供一个统一的出口,使得 在控制流转到程序的其他部分以前,能够对程序的状 态作统一的管理,比如关闭文件或释放其他系统资源。 实际使用中finally紧接于try-catch语句的最后一个catch 块,基本语法如下: