首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.TypeInitializationException未被处理

System.TypeInitializationException未被处理
EN

Stack Overflow用户
提问于 2011-03-03 10:00:50
回答 2查看 21.1K关注 0票数 3

当MS Visual 2005抛出此消息时,意味着什么?

代码语言:javascript
复制
"The type initializer for 'RMDC.clsVariables' threw an exception."

错误日志如下所示:

代码语言:javascript
复制
System.TypeInitializationException was unhandled
  Message="The type initializer for 'RMDC.clsVariables' threw an exception."
  Source="RMDC"
  TypeName="RMDC.clsVariables"
  StackTrace:
       at RMDC.clsFunctions.getRegistryValue() in D:\Magnus Project\Project Backup\RMDC\RMDC\Class\clsFunctions.cs:line 704
       at RMDC.Program.Main() in ..\RMDC\RMDC\Program.cs:line 39
       at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

问题中有错误的类

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.Collections;


namespace RMDC
{
    class clsVariables
    {
        public SqlConnection conn = new SqlConnection();

        public SqlDataAdapter sAdapter = new SqlDataAdapter();
        public DataSet sDataSet = new DataSet();

        public static string sMessageBox = "";
        public static string sUsername;
        public static string sUserFullname;
        public static string sUserLogin;
        public static string sUserType;
        public static int sUserID;
        public static string sServer = "system-10";
        public static string sDatabase = "";
        public static string sDBUserID = "";
        public static string sDBPassword = "";
        public static bool sDontShow = false;
        public static string sCompanyName;
        public static string sContactName;
        public static string sCompanyAddress;
        public static string sPhoneNumber;
        public static string sFaxNumber;
        public static string sEmailAddress;
        public static string sWebAddress;
        public static string sOfficeCd = "01";
        public static int sfiscalYrId = 1;
        public static string sfiscalYr;
        public static DateTime sFiscalStart = DateTime.Today;
        public static DateTime sFiscalEnd = DateTime.Today;
        public static int sRoleId;

        public static byte[] m_barrImg;

        public static SqlConnection cnn = new SqlConnection();

        public OpenFileDialog openIMG = new OpenFileDialog();

        public static NepEngCalanderProvider.NepEngDateClass nepDate = new NepEngCalanderProvider.NepEngDateClass();
        public static NumberToWord.InWordsClass NumericWords = new NumberToWord.InWordsClass();


        public enum QueryType
        {
            Insert,
            Update,
            Delete
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 10:05:18

嗯,它的意思是它所说的-在类型初始化RMDC.clsVariables (这是一个非常规的名称,顺便说一句)的东西爆炸了。

这可能是一个静态变量初始化器:

代码语言:javascript
复制
static int foo = GetInitialValueForFoo();

或静态构造函数:

代码语言:javascript
复制
static clsVariables
{
    DoSomething();
}

不管它是什么,它都失败了,让你的类型无法使用。

如果在调试器中运行代码,那么一旦抛出异常,它就会破门而入,这样就可以更容易地计算出正在发生的事情。

票数 3
EN

Stack Overflow用户

发布于 2011-03-03 13:41:32

您必须查看异常的InnerException,才能找到引发TypeInitializationException的原因。没有这些信息是不可能猜测出什么问题的。

任何代码生成的错误日志都需要一些工作,这样它就不会忘记显示内部异常。如果使用Exception.ToString()方法,这是自动的。如果需要,为AppDomain.CurrentDomain.UnhandledException实现一个事件处理程序,记录e.ExceptionObject.ToString()的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5179156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档