J2E

在java的异常抛出时,有些程序时一层包一层的进行捕获,其基本上的语法是怎样的?谁在里层,谁在外层有重要的区分吗?还是按照先捕获父类异常在捕获子类异常?
例:
public static void main (String[] args) {
  try {
    ServerSocket server = null;
    try {
      server = new ServerSocket(4700);
    } catch (Exception e) {
      e.printStackTrace();
    }
    Socket socket = null;
    try {
      socket = server.accept();
    } catch (Exception e) {
      e.printStackTrace();
    }
..................
  }
}

解决方案 »

  1.   

    可以只用 一个try 后面跟着多个catch 先抓子类在抓父类 try{ ..... 
    }catch(NumberFormatException n){
       .....
    }catch(Exception e ){
    }finally{.....}
      

  2.   

    谁在里层谁在外层有很大区别流程是这样:先捕获里层异常。捕获之后如果在catch{}中继续用throw向外抛,外层才会捕获,否则外层不会捕获。这种时候跟子类/父类异常没有关系。
      

  3.   

    LZ的问题有点业余啊 不知道怎么去回答 你可以自己找一本JAVA的书 只要不是普及类的就行 里面讲异常的那一节肯定能解答你的问题