如果构造函数中throw Exception,那么我要在构造函数中catch掉这个Exception,那我的调用程序在用new MyClass()的时候怎么知道是否new成功了呢?难道最好不要在ctor中进行catch么?在调用函数中来进行catch?

解决方案 »

  1.   

    如果构造函数中throw Exception, 去掉这个Exception。
    调用程序在用new MyClass()时,如果不成功了,调用处就会抛错。换句话,不抛错就是成功啦
      

  2.   

    构造函数中还可以用rethrow Exception(重新抛出异常)来处理,但static区呢?如果它抛出异常的话那么调用程序如何去知道是否发生异常了呢?像加载JDBC driver的程序:1
     Class.forName("com.informix.jdbc.IfxDriver");放在static block里是否合适?因为我有好几个构造函数来加载这个driver. 
    是否在每个构造函数里写一下? 
      

  3.   

    放在static block里是否合适?因为我有好几个构造函数来加载这个driver. 
    是否在每个构造函数里写一下? -- 以下代码不知是否合乎要求:   // 
       public XXX(String driverName)  {   }
      

  4.   

    放在static block里是否合适?因为我有好几个构造函数来加载这个driver. 
    是否在每个构造函数里写一下? -- 以下代码不知是否合乎要求:
    class MyConn {
       private String driverName;
       public MyConn(String driverName)  {
           this.String driverName = driverName;
       }
       public getConn(URL, user, password) {
           Class.forName("com.informix.jdbc.IfxDriver);
           return DriverManager.getConnection(URL, user, password);   } 
    }