题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TypeIntailization_Exception
{
class TypeInit
{
// Static constructor
static TypeInit()
{
}
static readonly TypeInit instance = new TypeInit();
public static TypeInit Instance
{
get { return instance; }
}
TypeInit() { }
}
class TestTypeInit
{
static public void Main()
{
TypeInit t = TypeInit.Instance;
}
}
}
运行此操作时,我会得到类型的Intialization异常,我如何避免这种情况...
解决方案
当类初始化器抛出异常时,抛出了TypeInitializationException(在您的示例中 static TypeInit()
.
您可以通过检查 InnerException
TypeInitializationException的属性:
static public void Main()
{
try
{
TypeInit t = TypeInit.Instance;
}
catch (TypeInitializationException tiex)
{
var ex = tiex.InnerException;
Console.WriteLine("Exception from type init: '{0}'", ex.Message);
}
}
其他提示
您正在向单身班的构造函数中抛出一个例外,因此,当您试图构造它时,它会引发异常。如您所见,这被包裹在TypeInitialization Exception中。
解决方案:除非经过战绩,否则不要抛出例外。
不隶属于 StackOverflow