关于“类型初始值设定项引发异常”

     今天在调试程序时发现了一个异常 :“类型初始值设定项引发异常”  , 第一次发现。关于TypeInitializationException异常,MSDN的解析:由类初始值设定项引发的异常周围的包装引发的异常。

     程序里面的异常点是获取单一实例对象是报的异常,百思不得其解。再仔细查一下发现单一实例对象为null,实例化失败了。而这个类的构造函数里面有2个类的实例化,怀疑是构造函数里面抛出了异常。原来是里面两个类的调用了需要连接数据库的操作,而连接数据库操作失败了,进而抛出了异常,但是在单一实例的实例化函数里面确得不到连接数据库的异常。这个问题隐藏得比较深,最终出现这个问题的原因,原来是数据库配置错误了。把配置文件一修改,再试,问题就解决了。

     小结:  针对这个问题,对这个实现做一下思考。在设计这个功能的时候,在构造函数里面调用了可能会比较耗时的操作,又没加锁,这绝对是最糟糕的Singleton实现。接手这样的程序,绝对不得闲,不省心啊。

      

      

 

posted @ 2011-08-30 17:43  可乐加冰  阅读(1562)  评论(0编辑  收藏  举报