多catch语句
能够运用多个catch语句,每一个catch离别捕捉对应的Exception及其子类。JVM在捕捉到非常后,会从上到下婚配catch语句,婚配到某个catch后,实行catch代码块,然后不再继承婚配。 (引荐进修:java课程)
简朴地说就是:多个catch语句只要一个能被实行。比方:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(e); } }
存在多个catch的时刻,catch的递次非常重要:子类必需写在前面。比方:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println("IO error"); } catch (UnsupportedEncodingException e) { // 永久捕捉不到 System.out.println("Bad encoding"); } }
关于上面的代码,UnsupportedEncodingException非常是永久捕捉不到的,由于它是IOException的子类。当抛出UnsupportedEncodingException非常时,会被catch (IOException e) { ... }捕捉并实行。
因而,准确的写法是把子类放到前面:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (UnsupportedEncodingException e) { System.out.println("Bad encoding"); } catch (IOException e) { System.out.println("IO error"); } }
以上就是java怎样捕捉非常的细致内容,更多请关注ki4网别的相干文章!