一、异常类

1、在C#中所有的异常都是使用一个异常类型的示例对象表示的,这些异常类型都是继承自System.Exception类型,或者直接使用System.Exception类型的实例对象;

2、在C#中,位于finally块中的代码可以保证不管代码是正常结束,还是进入异常处理代码块,其中的语句均会被执行。

System.Exception类有一些属性值得注意,这些属性被所有从此类派生的异常类共享,这些属性是:

  Message:一个只读字符串,此属性为当前的异常提供了描述性信息;

  InnerException:一个Exception类型的只读属性,如果它的值不为null,则可以通过它的值获取导致当前异常的异常实例;反之,如果其值为null,则表示当前异常不是由其他异常引发的。

  StackTrace:一个只读字符串,此属性描述了异常发生时调用堆栈的内容,其中首先显示最近的方法调用。

二、抛出异常

  当程序有错误的时候可以创建一个描述该错误的异常对象,然后用throw关键字抛出异常对象,抛出的异常对象将被当前代码的更上层代码所捕获,或者不处理直接抛出,或者干脆不予捕获。那么该异常将一直向上传递,直到有人捕获并处理它。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AllDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            DoSomething(null);

            Console.ReadKey();
        }

        public static void DoSomething(string name)
        {
            if (name == null)
            {
                throw new ArgumentException("参数不能为空!");
            }
        }
    }
}
View Code

相关文章: