导出 (0) 打印
全部展开
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

Exception 类

表示在应用程序执行过程中发生的错误。

System.Object
  System.Exception
    更多...

命名空间:  System
程序集:  mscorlib(在 mscorlib.dll 中)

[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
public class Exception : ISerializable, _Exception

Exception 类型公开以下成员。

  名称说明
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Exception()初始化 Exception 类的新实例。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Exception(String)使用指定的错误信息初始化 Exception 类的新实例。
受保护的方法Exception(SerializationInfo, StreamingContext)用序列化数据初始化 Exception 类的新实例。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Exception(String, Exception)使用指定错误消息和对作为此异常原因的内部异常的引用来初始化 Exception 类的新实例。
页首

  名称说明
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Data获取一个提供用户定义的其他异常信息的键/值对的集合。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持HelpLink获取或设置指向此异常所关联帮助文件的链接。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持HResult获取或设置 HRESULT(一个分配给特定异常的编码数字值)。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持InnerException获取导致当前异常的 Exception 实例。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Message获取描述当前异常的消息。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Source获取或设置导致错误的应用程序或对象的名称。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持StackTrace获取调用堆栈上直接帧的字符串表示形式。
公共属性TargetSite获取引发当前异常的方法。
页首

  名称说明
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(Object)确定指定的对象是否等于当前对象。 (继承自 Object。)
受保护的方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Finalize允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetBaseException当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根源。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetHashCode作为默认哈希函数。 (继承自 Object。)
公共方法GetObjectData当在派生类中重写时,用关于异常的信息设置 SerializationInfo
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetType获取当前实例的运行时类型。

在 XNA Framework 3.0 中,此成员继承自 Object.GetType()


在 可移植类库 可移植类库 中,此成员继承自 Object.GetType()


在 适用于 Windows 应用商店应用的 .NET Windows 8 中,此成员继承自 Object.GetType()
受保护的方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持MemberwiseClone创建当前 Object 的浅表副本。 (继承自 Object。)
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString创建并返回当前异常的字符串表示形式。 (重写 Object.ToString()。)
页首

  名称说明
受保护的事件SerializeObjectState在序列化异常,以创建包含有关异常的序列化数据的异常状态对象时发生。
页首

此类是所有异常的基类。 当发生错误时,系统或当前执行的应用程序将通过引发包含错误信息的异常来报告该错误。 引发异常之后,将由应用程序或默认异常处理程序处理该异常。

本节内容:

错误和异常
Try/catch 块
异常类型的功能
异常类属性
性能注意事项
选择标准异常
实现自定义异常

错误和异常

运行时错误可能出于多种原因生成。 但是,不应处理所有错误为您的代码的异常。 这是生成运行时和适当的方式做出响应错误的一些类别。

  • 使用错误。使用错误表示在可能导致异常的程序逻辑的一个错误。 但是,应通过修改有错误的代码解决该错误而不是通过异常处理。 例如,Object.Equals(Object) 方法的重写在下面的示例中,假设 obj 参数必须始终不为 null。

    
    using System;
    
    public class Person
    {
       private string _name;
    
       public string Name 
       {
          get { return _name; } 
          set { _name = value; }
       }
    
       public override int GetHashCode()
       {
          return this.Name.GetHashCode();  
       }  
    
       public override bool Equals(object obj)
       {
          // This implementation contains an error in program logic:
          // It assumes that the obj argument is not null.
          Person p = (Person) obj;
          return this.Name.Equals(p.Name);
       }
    }
    
    public class Example
    {
       public static void Main()
       {
          Person p1 = new Person();
          p1.Name = "John";
          Person p2 = null; 
    
          // The following throws a NullReferenceException.
          Console.WriteLine("p1 = p2: {0}", p1.Equals(p2));   
       }
    }
    
    
    

    NullReferenceException 异常结果,当 objnull 可以通过修改源代码显式测试消除对于空在调用 Object.Equals 重写然后重新编译之前。 下面的示例包含该更正了源代码处理 null 参数。

    
    using System;
    
    public class Person
    {
       private string _name;
    
       public string Name 
       {
          get { return _name; } 
          set { _name = value; }
       }
    
       public override int GetHashCode()
       {
          return this.Name.GetHashCode();  
       }  
    
       public override bool Equals(object obj)
       {
           // This implementation handles a null obj argument.
           Person p = obj as Person; 
           if (p == null) 
              return false;
           else
              return this.Name.Equals(p.Name);
       }
    }
    
    public class Example
    {
       public static void Main()
       {
          Person p1 = new Person();
          p1.Name = "John";
          Person p2 = null; 
    
          Console.WriteLine("p1 = p2: {0}", p1.Equals(p2));   
       }
    }
    // The example displays the following output:
    //        p1 = p2: False
    
    
    

    而不使用异常处理错误情况中,可以使用 Debug.Assert 方法标识用法错误调试版本,因此,标识用法错误的 Trace.Assert 方法在调试和发布版本。 有关详细信息,请参阅托管代码中的断言

  • 编程错误。通过编写无漏洞代码不一定避免程序错误的运行时错误。

    在某些情况下,程序错误可能反映所需的或实例错误状态。 在这种情况下,您可能还希望避免使用异常处理相关编程错误然后重试此操作。 例如,如果用户应以特定格式输入一个日期,可以通过调用 DateTime.TryParseExact 方法分析日期字符串,返回 Boolean 值指明分析操作是否成功,而不是使用 DateTime.ParseExact 方法,FormatException 引发异常,如果日期字符串不能转换为 DateTime 值。 同样,如果用户尝试打开不存在的文件,则可以第一次调用 File.Exists 方法检测选定文件是否存在,如果不存在,提示希望创建它的他或她用户。

    在某些情况下,程序错误将在您的代码中处理的一个意外错误状态。 例如,即使您检查以确保文件存在,在能打开之前,它可能已经被删除,也可能已损坏。 在这种情况下,尝试通过实例化 StreamReader 对象或调用 Open 方法打开文件可能会引发 FileNotFoundException 异常。 在这些情况下,应使用异常处理从错误中恢复。

  • 系统故障。系统故障不能以有意义的方式处理程序模型的运行时错误。 例如,如果公共语言运行时无法分配额外的内存,所有方法会引发 OutOfMemoryException 异常。 通常,通过使用异常处理,系统故障未处理。 相反,在应用程序停止之前,您可以使用一个操作 (例如 AppDomain.UnhandledException 和调用 Environment.FailFast 方法添加到记录异常信息和通知该失败的用户。

Try/catch 块

公共语言运行时提供一种异常处理模型,该模型基于对象形式的异常表示形式,并且将程序代码和异常处理代码分到 try 块和 catch 块中。 可以有一个或多个 catch 块,每个块都设计为处理一种特定类型的异常,或者将一个块设计为捕捉比其他块更具体的异常。

如果应用程序将处理在执行应用程序代码块期间发生的异常,则代码必须放置在 try 语句中并且称为try代码块。 catch 语句中处理由 try 块引发的异常的应用程序代码,称为 catch 块。 零个或多个 catch 块与一个 try 块相关联,每个 catch 块均包含一个确定该块处理的异常类型的类型筛选器。

try 块中出现异常时,系统按所关联 catch 块在应用程序代码中出现的顺序搜索它们,直到定位到处理该异常的 catch 块为止。 如果某 Catch 块的类型筛选器指定 T 或任何派生出 T 的类型,则该 catch 块处理 T 类型的异常。 系统在找到第一个处理该异常的 catch 块后即停止搜索。 因此,正如本节后面的示例所演示的那样,在应用程序代码中处理某类型的 catch 块必须在处理其基类型的 catch 块之前指定。 处理 System.Exception 的 Catch 块最后指定。

如果当前 try 块所关联的所有 catch 块均不处理该异常,且当前 try 块嵌套在当前调用的其他 try 块中,则搜索与下一个封闭 try 块相关联的 catch 块。 如果没有找到用于该异常的 catch 块,则系统搜索当前调用中前面的嵌套级别。 如果在当前调用中没有找到用于该异常的 catch 块,则将该异常沿调用堆栈向上传递,搜索上一个堆栈帧来查找处理该异常的 catch 块。 继续搜索调用堆栈,直到该异常得到处理或调用堆栈中没有更多的帧为止。 如果到达调用堆栈顶部却没有找到处理该异常的 catch 块,则由默认的异常处理程序处理该异常,然后应用程序终止。

异常类型的功能

异常类型支持下面的功能:

  • 描述错误的可读文本。 当异常发生时,运行时产生文本消息通知用户错误的性质并提供解决该问题的操作建议。 此文本消息保存在异常对象的 Message 属性中。 在创建异常对象过程中,可以将文本字符串传递给构造函数以描述该特定异常的详细信息。 如果没有向构造函数提供错误消息参数,则将使用默认错误消息。 有关更多信息,请参见 Message 属性。

  • 发生异常时调用堆栈的状态。 StackTrace 属性包含可以用来确定代码中错误发生位置的堆栈跟踪。 堆栈跟踪列出所有调用的方法和源文件中这些调用所在的行号。

异常类属性

Exception 包含很多属性,可以帮助标识异常的代码位置、类型、帮助文件和原因:StackTraceInnerExceptionMessageHelpLinkHResultSourceTargetSiteData

当在两个或多个异常之间存在因果关系时,InnerException 属性会维护此信息。 作为对此内部异常的反应将引发外部异常。 处理外部异常的代码可利用以前的内部异常的信息更妥当地处理错误。 Data 属性有关可以将存储为键/值对的集合的异常的补充。

应本地化在创建异常对象过程中传递给构造函数的错误消息字符串,这种字符串可以使用 从资源文件提供的ResourceManager 类。 有关局部化的更多信息,请参见 创建桌面应用程序的附属程序集打包和部署桌面应用程序中的资源主题。

若要向用户提供有关异常发生原因的大量信息,可以使用 HelpLink 属性保存帮助文件的 URL(或 URN)。

Exception 类使用具有值 0x80131500 的 HRESULT COR_E_EXCEPTION。

有关 Exception 类的实例的初始属性值列表,请参见 Exception 构造函数。

性能注意事项

引发或处理异常占用大量的系统资源和执行时间。 引发异常只是为了处理确实异常的情况,而不是为了处理可预知的事件或流控制。 例如,在某些情况下,例如,您正在开发类库,将引发异常是合理的,如果方法参数无效,因为您需要方法调用使用有效的参数。 无效参数,方法,如果不为用法错误的结果,极大表示的操作发生。 相反,用户偶尔会输入无效数据,因此如果用户输入无效,则不要引发异常。 相反,在这种情况下,请提供重试机制以便用户输入有效输入。 也不应使用异常处理错误条件。 相反,应使用 断言 标识和正确用法错误。

此外,返回代码正常时不要引发异常;不要将返回代码转换为异常;也不要例行公事地捕捉异常、忽略异常,然后继续处理。

选择标准异常

当您必须引发异常时,您通常可以使用现有的异常类型 .NET Framework 而不是实现自定义异常。 您应在这两种情况下使用标准异常类型:

  • 您引发即(由使用错误导致的异常由调用方法的开发人员)进行的程序逻辑的一个错误。 通常,例如 ArgumentExceptionArgumentNullExceptionInvalidOperationExceptionNotSupportedException会引发异常。 您提供给异常对象的构造函数的字符串,在实例化异常对象应描述错误,以便开发人员能修复它。 有关更多信息,请参见 Message 属性。

  • 在过程中传递给调用方具有现有 .NET Framework 异常的错误。 您应引发能从派生的异常。 例如,如果方法需要参数是枚举类型的一个有效的成员,则应引发 InvalidEnumArgumentException (派生类) 而不是 ArgumentException

实现自定义异常

在以下情况下,用于处理的现有 .NET Framework 异常错误条件不足以的:

  • 当异常反映无法映射到现有的 .NET Framework 异常的单个编程错误。

  • 当需要异常处理时这与不同进程上为现有 .NET Framework 异常是正确的,或者必须从类似的异常消除异常。 例如,如果 ArgumentOutOfRangeException 引发异常,在调用方法时在分析超出目标整型范围字符串的数值表示方法时,不需要从未提供所的调用方的结果为错误使用同一异常适当的约束的值,。

Exception 类是 .NET Framework 中所有自定义安装程序的基类。 许多派生类取决于 Exception 选件类的成员的继承行为;它们不重写 Exception的成员,也不定义任何单个成员。

定义自己的异常类:

  1. 创建一个从 Exception 继承的类。 如果需要,请定义您的选件类需要的任何单个成员提供有关异常的附加信息。 例如,ArgumentException 选件类包含用于指定参数的名称参数导致异常的一个 ParamName 属性,并且RegexMatchTimeoutException 属性包含指示超时间隔的一个 MatchTimeout 属性。

  2. 如果需要,请重写函数要更改或修改的所有继承成员。 请注意 Exception 大多数现有的派生类不重写继承的成员行为。

  3. 确定您的自定义异常对象是否是可序列化的。 序列化到远程处理的上下文使您可以保存有关异常的信息并允许异常信息共享服务器和一个客户端代理。 若要使异常对象可序列化,标记将其与 SerializableAttribute 属性。

  4. 定义自己的异常选件类构造函数。 通常,异常选件类具有以下一个或多个构造函数:

下面的示例说明了说明在自定义类中的用法。 当客户端尝试通过指定不是质数的一个起始编号检索质数时序列时指定的 NotPrimeException 异常。 异常定义新的属性,NonPrime,返回非质数导致异常。 除实现受保护的无参数构造函数和一个构造函数有 SerializationInfoStreamingContext 参数之外的序列化,NotPrimeException 选件类定义了支持 NonPrime 属性三个附加构造函数。每个构造函数调用基类构造函数除了使该非质数的值之外。 NotPrimeException类也标记了SerializableAttribute属性 。


using System;
using System.Runtime.Serialization;

[Serializable()]
public class NotPrimeException : Exception
{
   private int notAPrime;

   protected NotPrimeException()
      : base()
   { }

   public NotPrimeException(int value) :
      base(String.Format("{0} is not a prime number.", value))
   {
      notAPrime = value;
   }

   public NotPrimeException(int value, string message)
      : base(message)
   {
      notAPrime = value;
   }

   public NotPrimeException(int value, string message, Exception innerException) :
      base(message, innerException)
   {
      notAPrime = value;
   }

   protected NotPrimeException(SerializationInfo info,
                               StreamingContext context)
      : base(info, context)
   { }

   public int NonPrime
   { get { return notAPrime; } }
}


在下面的示例演示的 PrimeNumberGenerator 选件类在调用使用它说明计算质数序列从 2 到客户端指定的限制对其选件类构造函数。 GetPrimesFrom 方法返回大于或等于一个指定的下限的所有质数,但是,引发 NotPrimeException,如果该下限不是质数。


using System;
using System.Collections.Generic;


[Serializable]
public class PrimeNumberGenerator
{
   private const int START = 2;
   private int maxUpperBound = 10000000;
   private int upperBound;
   private bool[] primeTable;
   private List<int> primes = new List<int>();

   public PrimeNumberGenerator(int upperBound)
   {
      if (upperBound > maxUpperBound)
      {
         string message = String.Format(
                           "{0} exceeds the maximum upper bound of {1}.",
                           upperBound, maxUpperBound);
         throw new ArgumentOutOfRangeException(message);
      }
      this.upperBound = upperBound;
      // Create array and mark 0, 1 as not prime (True).
      primeTable = new bool[upperBound + 1];
      primeTable[0] = true;
      primeTable[1] = true;

      // Use Sieve of Eratosthenes to determine prime numbers.
      for (int ctr = START; ctr <= (int)Math.Ceiling(Math.Sqrt(upperBound));
            ctr++)
      {
         if (primeTable[ctr]) continue;

         for (int multiplier = ctr; multiplier <= upperBound / ctr; multiplier++)
            if (ctr * multiplier <= upperBound) primeTable[ctr * multiplier] = true;
      }
      // Populate array with prime number information.
      int index = START;
      while (index != -1)
      {
         index = Array.FindIndex(primeTable, index, (flag) => !flag);
         if (index >= 1)
         {
            primes.Add(index);
            index++;
         }
      }
   }

   public int[] GetAllPrimes()
   {
      return primes.ToArray();
   }

   public int[] GetPrimesFrom(int prime)
   {
      int start = primes.FindIndex((value) => value == prime);
      if (start < 0)
         throw new NotPrimeException(prime, String.Format("{0} is not a prime number.", prime));
      else
         return primes.FindAll((value) => value >= prime).ToArray();
   }
}


下面的示例生成两个调用。GetPrimesFrom 与非质数的方法,其中跨越应用程序域边界。 在这两种情况下,异常在客户端代码引发和已成功处理。


using System;
using System.Reflection;

class Example
{
   public static void Main()
   {
      int limit = 10000000;
      PrimeNumberGenerator primes = new PrimeNumberGenerator(limit);
      int start = 1000001;
      try
      {
         int[] values = primes.GetPrimesFrom(start);
         Console.WriteLine("There are {0} prime numbers from {1} to {2}",
                           start, limit);
      }
      catch (NotPrimeException e)
      {
         Console.WriteLine("{0} is not prime", e.NonPrime);
         Console.WriteLine(e);
         Console.WriteLine("--------");
      }

      AppDomain domain = AppDomain.CreateDomain("Domain2");
      PrimeNumberGenerator gen = (PrimeNumberGenerator)domain.CreateInstanceAndUnwrap(
                                        typeof(Example).Assembly.FullName,
                                        "PrimeNumberGenerator", true,
                                        BindingFlags.Default, null,
                                        new object[] { 1000000 }, null, null);
      try
      {
         start = 100;
         Console.WriteLine(gen.GetPrimesFrom(start));
      }
      catch (NotPrimeException e)
      {
         Console.WriteLine("{0} is not prime", e.NonPrime);
         Console.WriteLine(e);
         Console.WriteLine("--------");
      }
   }
}


Windows 运行时和 .NET Framework 4.5.1

在 Windows 8的 适用于 Windows 应用商店应用的 .NET 异常,则通过非 .NET Framework 堆栈帧时,传播,一些通常异常信息丢失。 启动使用 .NET Framework 4.5.1 和 Windows 8.1中,公共语言运行时继续使用引发的原始 Exception 对象,除非该异常的非 .NET Framework 堆栈帧修改过。

下面的代码示例说明如何定义 catch 块来处理 ArithmeticException 错误。 catch 块还捕捉 DivideByZeroException 错误,因为 DivideByZeroExceptionArithmeticException 派生,且没有为 T:System.DivideByZeroException 错误显式定义 [catch] 块。


using System;

class ExceptionTestClass 
{
   public static void Main() 
   {
      int x = 0;
      try 
      {
         int y = 100/x;
      }
         catch (ArithmeticException e) 
         {
            Console.WriteLine("ArithmeticException Handler: {0}", e.ToString());
         }
         catch (Exception e) 
         {
            Console.WriteLine("Generic Exception Handler: {0}", e.ToString());
         }
   }	
}
/*
This code example produces the following results:

ArithmeticException Handler: System.DivideByZeroException: Attempted to divide by zero.
   at ExceptionTestClass.Main()

*/


.NET Framework

受以下版本支持:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

可移植类库

受以下版本支持:可移植类库

适用于 Windows 应用商店应用的 .NET

受以下版本支持:Windows 8

适用于 Windows Phone 应用的 .NET

受以下版本支持:Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参阅.NET Framework 系统要求

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

System.Object
  System.Exception
    Microsoft.Build.BuildEngine.InternalLoggerException
    Microsoft.Build.BuildEngine.InvalidProjectFileException
    Microsoft.Build.BuildEngine.InvalidToolsetDefinitionException
    Microsoft.Build.BuildEngine.RemoteErrorException
    Microsoft.Build.Exceptions.BuildAbortedException
    Microsoft.Build.Exceptions.InternalLoggerException
    Microsoft.Build.Exceptions.InvalidProjectFileException
    Microsoft.Build.Exceptions.InvalidToolsetDefinitionException
    Microsoft.Build.Framework.LoggerException
    Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
    Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException
    Microsoft.JScript.CmdLineException
    Microsoft.JScript.ParserException
    Microsoft.VisualBasic.ApplicationServices.CantStartSingleInstanceException
    Microsoft.VisualBasic.ApplicationServices.NoStartupFormException
    Microsoft.VisualBasic.Compatibility.VB6.WebClassContainingClassNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebClassCouldNotFindEvent
    Microsoft.VisualBasic.Compatibility.VB6.WebClassNextItemCannotBeCurrentWebItem
    Microsoft.VisualBasic.Compatibility.VB6.WebClassNextItemRespondNotFound
    Microsoft.VisualBasic.Compatibility.VB6.WebClassUserWebClassNameNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebClassWebClassFileNameNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebClassWebItemNotValid
    Microsoft.VisualBasic.Compatibility.VB6.WebItemAssociatedWebClassNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebItemClosingTagNotFound
    Microsoft.VisualBasic.Compatibility.VB6.WebItemCouldNotLoadEmbeddedResource
    Microsoft.VisualBasic.Compatibility.VB6.WebItemCouldNotLoadTemplateFile
    Microsoft.VisualBasic.Compatibility.VB6.WebItemNameNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebItemNoTemplateSpecified
    Microsoft.VisualBasic.Compatibility.VB6.WebItemTooManyNestedTags
    Microsoft.VisualBasic.Compatibility.VB6.WebItemUnexpectedErrorReadingTemplateFile
    Microsoft.VisualBasic.CompilerServices.IncompleteInitialization
    Microsoft.VisualBasic.CompilerServices.InternalErrorException
    Microsoft.VisualBasic.FileIO.MalformedLineException
    System.Activities.DynamicUpdate.InstanceUpdateException
    System.Activities.ExpressionParser.SourceExpressionException
    System.Activities.Expressions.LambdaSerializationException
    System.Activities.InvalidWorkflowException
    System.Activities.Presentation.Metadata.AttributeTableValidationException
    System.Activities.Statements.WorkflowTerminatedException
    System.Activities.VersionMismatchException
    System.Activities.WorkflowApplicationException
    System.AddIn.Hosting.AddInSegmentDirectoryNotFoundException
    System.AddIn.Hosting.InvalidPipelineStoreException
    System.AggregateException
    System.ApplicationException
    System.ComponentModel.Composition.CompositionContractMismatchException
    System.ComponentModel.Composition.CompositionException
    System.ComponentModel.Composition.ImportCardinalityMismatchException
    System.ComponentModel.Composition.Primitives.ComposablePartException
    System.ComponentModel.DataAnnotations.ValidationException
    System.ComponentModel.Design.ExceptionCollection
    System.Configuration.Provider.ProviderException
    System.Configuration.SettingsPropertyIsReadOnlyException
    System.Configuration.SettingsPropertyNotFoundException
    System.Configuration.SettingsPropertyWrongTypeException
    System.Data.Linq.ChangeConflictException
    System.Diagnostics.Eventing.Reader.EventLogException
    System.Diagnostics.Tracing.EventSourceException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectExistsException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectNotFoundException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryOperationException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException
    System.DirectoryServices.Protocols.DirectoryException
    System.IdentityModel.AsynchronousOperationException
    System.IdentityModel.Metadata.MetadataSerializationException
    System.IdentityModel.Protocols.WSTrust.WSTrustSerializationException
    System.IdentityModel.RequestException
    System.IdentityModel.Selectors.CardSpaceException
    System.IdentityModel.Selectors.IdentityValidationException
    System.IdentityModel.Selectors.PolicyValidationException
    System.IdentityModel.Selectors.ServiceBusyException
    System.IdentityModel.Selectors.ServiceNotStartedException
    System.IdentityModel.Selectors.StsCommunicationException
    System.IdentityModel.Selectors.UnsupportedPolicyOptionsException
    System.IdentityModel.Selectors.UntrustedRecipientException
    System.IdentityModel.Selectors.UserCancellationException
    System.IdentityModel.Services.AsynchronousOperationException
    System.IdentityModel.Services.FederatedAuthenticationSessionEndingException
    System.IdentityModel.Services.FederationException
    System.IdentityModel.Services.WSFederationMessageException
    System.InvalidTimeZoneException
    System.IO.IsolatedStorage.IsolatedStorageException
    System.IO.Log.SequenceFullException
    System.Management.Instrumentation.InstrumentationBaseException
    System.Management.Instrumentation.WmiProviderInstallationException
    System.Net.Http.HttpRequestException
    System.Net.Mail.SmtpException
    System.Net.PeerToPeer.PeerToPeerException
    System.Runtime.CompilerServices.RuntimeWrappedException
    System.Runtime.DurableInstancing.InstancePersistenceException
    System.Runtime.Remoting.MetadataServices.SUDSGeneratorException
    System.Runtime.Remoting.MetadataServices.SUDSParserException
    System.Runtime.Serialization.InvalidDataContractException
    System.Security.RightsManagement.RightsManagementException
    System.ServiceModel.Channels.InvalidChannelBindingException
    System.SystemException
    System.Threading.BarrierPostPhaseException
    System.Threading.LockRecursionException
    System.Threading.Tasks.TaskSchedulerException
    System.TimeZoneNotFoundException
    System.Web.Query.Dynamic.ParseException
    System.Web.Security.MembershipCreateUserException
    System.Web.Security.MembershipPasswordException
    System.Web.UI.ViewStateException
    System.Web.UI.WebControls.EntityDataSourceValidationException
    System.Web.UI.WebControls.LinqDataSourceValidationException
    System.Windows.Automation.NoClickablePointException
    System.Windows.Automation.ProxyAssemblyNotLoadedException
    System.Windows.Controls.PrintDialogException
    System.Windows.Forms.AxHost.InvalidActiveXStateException
    System.Windows.Xps.XpsException
    System.Windows.Xps.XpsWriterException
    System.Workflow.Activities.Rules.RuleException
    System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException
    System.Workflow.ComponentModel.Serialization.WorkflowMarkupSerializationException
    System.Workflow.ComponentModel.WorkflowTerminatedException
    System.Workflow.Runtime.WorkflowOwnershipException
    System.Xaml.XamlException

社区附加资源

添加
显示:
© 2015 Microsoft