
异常原因:声明的对象没有进行实例化,即对象的实际值为null
解决方案:new一个实例
2. 类型初始值设定项引发异常异常原因:配置文件缺少配置项。
解决方案:web.config文件中,添加缺少的config值
3. 调用目标发生了异常异常原因:程序调用外部服务(或动态加载动态库内容)的时候,如果外部服务报错,返回这个异常。如:本地程序调用外部webService、dll文件等会出现这种情况。
解决方案:我们需要输出InnerException来查看具体的报错信息。
以下引用地址: https://www.cnblogs.com/shensigzs/p/4637614.html
可以在Program.cs类中加入如下代码:
static void Main()
{
Application.ThreadException +=new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.Run(new FrmMain());
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
Exception ex = e.Exception;
Collect.DX.Command.LogHelper.logger.Error(ex.InnerException.ToString());//日志记录
//做一些极其简单的记录异常信息操作
MessageBox.Show(ex.Message+Environment.NewLine+ex.InnerException.ToString(),"严重错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
Application.Exit();
}
现在错误信息一目了然
4.未能找到类型或命名空间名称“......”(是否缺少using指令或程序集引用?)程序中已经引用了这个dll文件,但是仍然报错(如下图1 图2)。
异常原因:引用的这个dll (OracleSQLMysql数据库查询.dll)生成的目标框架是.NET4.5,而执行程序的目标框架是.NET4.0,由于低版本不能兼容高版本,所以报错。
解决方案:将执行程序与调用的程序集使用相同框架版本。
5.未包含“IsChecked”的定义查看类ThreeCatalog时,包含”IsChecked”变量,但还是出现如下异常。
异常原因:项目中引用的是ThreeCatalog类所生成的程序集dll,此dll中不包含”IsChecked”变量。
解决方案:重新编译生成ThreeCatalog类的程序集dll,并查看引用dll地址是否是最新生成的。