VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • 异常Exception(二)

学习网址:https://docs.microsoft.com/zh-cn/dotnet/standard/exceptions/exception-class-and-properties

了解Exception的常见属性。

Data:Exception的键/值对数据。

复制代码
using System;
using System.Collections;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                NestedRoutine1(true);
            }
            catch (Exception e)
            {
                // 打印Data
                if (e.Data.Count > 0)
                {
                    foreach (DictionaryEntry de in e.Data)
                        Console.WriteLine("    Key: {0,-20}      Value: {1}",
                                          "'" + de.Key.ToString() + "'", de.Value);
                }
            }
            Console.ReadLine();
        }
       

        public static void NestedRoutine1(bool displayDetails)
        {
            try
            {
                NestedRoutine2(displayDetails);
            }
            catch (Exception e)
            {
                // 给data添加异常信息
                e.Data["ExtraInfo"] = "Information from NestedRoutine1.";
                e.Data.Add("MoreExtraInfo", "More information from NestedRoutine1.");
                // throw后面不加异常对象,默认是当前异常
                throw;
            }
        }

        public static void NestedRoutine2(bool displayDetails)
        {
            Exception e = new Exception("This statement is the original exception message.");
            if (displayDetails)
            {
                // 给data添加异常信息
                string s = "Information from NestedRoutine2.";
                int i = -903;
                DateTime dt = DateTime.Now;
                e.Data.Add("stringInfo", s);
                e.Data["IntInfo"] = i;
                e.Data["DateTimeInfo"] = dt;
            }
            throw e;
        }
    }
}
复制代码

HelpLink:指向帮助文件的 URL,没有值就为null。

InnerException:内部异常信息,当前异常可能是其他异常导致的,记录当前异常的原始异常。

代码:

 View Code

结果:

 

Message 提供有关异常原因的详细信息。一般是给用户看的。

 

 Source 获取或设置导致错误的应用程序或对象的名称,可以自己设置异常的Source,给source丰富一下dll、命名空间、方法等。

 

 StackTrace 错误位置的堆栈跟踪,精确到行。

 

量变会引起质变。

相关教程