c# try..... catch

  功能说明:在此例中,try 块包含对可能导致异常的ProcessString()方法的调用.catch子句包含仅在屏幕上显示消息的异常处理程序,当从ProcessString内部调用throw语句时,系统查找Catch语句并显示Exception caught消息.

    class Try_Test1
    {
        static void processString(string s)
        {
            if (s == null)
            {
                throw new ArgumentNullException();
            }

        }
        static void Main()
        {
            try
            {
                string s = null;
                processString(s);
            }
            catch (Exception e)
            {
                Console.WriteLine("第二个异常被捕获{0}",e);
            }
            Console.ReadKey();
        }
    }

 此例使用了两个catch语句,最先出现的是最特定的异常被捕获.

 class Try_Test2
    {
        static void processString(string s)
        {
            if (s == null)
            {
                throw new ArgumentNullException();
            }

        }
        static void Main()
        {
            try
            {
                string s = null;
                processString(s);
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine("第一个异常被获{0}.", e);
            }
            catch (Exception e)
            {
                Console.WriteLine("第二个异常被捕获{0}",e);
            }
            Console.ReadKey();
        }
    }

 //异常处理语句——try-finally使用

 //功能说明:在此例中,有一个导致异常的效转换语句,收到一条运行时的错误信息时,Finally语句块还是会执行.

    public class  Finally_Test1
    {
        static void Main()
        {
            int i = 123;
            string s = "string test";
            object o = s;
            try
            {
                i = (int)o; //转换无效
            }
            catch (Exception e)
            {
                Console.WriteLine("转换无效");

            }
            finally
            {
                Console.WriteLine("i={0}", i);//但是finally还是最终会执行。
            }
            Console.ReadKey();
        }

原文地址:https://www.cnblogs.com/print/p/3389373.html