日期:2014-05-17  浏览次数:20835 次

关于Try_Catch的一个问题
在复习Try_Catch的时候遇到了一个问题,先看代码:
 class Program
    {
        static void Main(string[] args)
        {
            Test t = new Test();
            string str1 = t.ReadString1();
            Console.WriteLine(str1);
            string str2 = t.ReadString2();
            Console.WriteLine(str2);
            Console.ReadLine();
        }
    }

    class Test
    {
        public string ReadString2()
        {
            Console.WriteLine("我是DoWork");
            return "DoW";
        }

        public string ReadString1()
        {
            string str1 = string.Empty;
            try
            {
                if (string.IsNullOrWhiteSpace(str1))
                {
                    throw new Exception("The value is null!");
                }
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return str1;
        }
    }

在类Test中ReadString1方法会抛出一个异常,怎么样使Main方法在处理string str1 = t.ReadString1();时因为ReadString1方法产生的异常而跳出,也即不再执行string str1 = t.ReadString1();一句之后的语句呢?我想到的一个方法是加一个判断,但那样就相当于对一人东西加了两次判断,不想那样做,请问有什么好的方法么?

------解决方案--------------------
 class Program
    {
        static void Main(string[] args)
        {
            try
            {
           &nbs