关于“类型初始值设定项引发异常”
2011-08-30 17:43
267 查看
今天在调试程序时发现了一个异常 :“类型初始值设定项引发异常” , 第一次发现。关于TypeInitializationException异常,MSDN的解析:由类初始值设定项引发的异常周围的包装引发的异常。 程序里面的异常点是获取单一实例对象是报的异常,百思不得其解。再仔细查一下发现单一实例对象为null,实例化失败了。而这个类的构造函数里面有2个类的实例化,怀疑是构造函数里面抛出了异常。原来是里面两个类的调用了需要连接数据库的操作,而连接数据库操作失败了,进而抛出了异常,但是在单一实例的实例化函数里面确得不到连接数据库的异常。这个问题隐藏得比较深,最终出现这个问题的原因,原来是数据库配置错误了。把配置文件一修改,再试,问题就解决了。
小结: 针对这个问题,对这个实现做一下思考。在设计这个功能的时候,在构造函数里面调用了可能会比较耗时的操作,又没加锁,这绝对是最糟糕的Singleton实现。接手这样的程序,绝对不得闲,不省心啊。
小结: 针对这个问题,对这个实现做一下思考。在设计这个功能的时候,在构造函数里面调用了可能会比较耗时的操作,又没加锁,这绝对是最糟糕的Singleton实现。接手这样的程序,绝对不得闲,不省心啊。
相关文章推荐
- X86 复制本地 生成有问题、类型初始值设定项引发异常
- 坑爹的“类型初始值设定项引发异常”
- Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常
- C# 读取Access出现“System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常。
- C#“Emgu.CV.CvInvoke”的类型初始值设定项引发异常
- C# 中“System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常。Access连接异常,解决方案
- Emgu.CV.CvInvoke的类型初始值设定项引发异常 emgucv3.3
- C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析与解决方法
- 原创----Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常,以及Spring.net的配置的大体写法
- 类型初始值设定项引发异常
- asp.net “Xcrs.DAL.Oracle.ProcManager”的类型初始值设定项引发异常
- GDAL C# “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 解决方法
- 类型初始值设定项引发异常
- 在visual stdio2010下调试程序出现 Emgu.CV.CvInvoke”的类型初始值设定项引发异常 的解决办法
- Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常。
- “OSGeo.OGR.Ogr”的类型初始值设定项引发异常
- .net异常之 TypeInitializationExeption(类型初始值设定项引发异常)
- C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析与解决方法
- .net System.TypeInitializationException 类型初始值设定项引发异常
- GDAL C# “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 解决方法