日期:2014-05-18  浏览次数:21077 次

引发类型为“System.Exception”的异常。什么意思???
输出明显比书上少了一半,
貌似switch中的case "simple"下的throw(new System.Exception());出现引发类型为“System.Exception”的异常。
这个怎么处理啊???

书上异常处理的实例。。。。新手 请轻拍 谢了。


C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ch07Ex02
{
    class Program
    {
        static string[] eTypes = { "none", "simple", "index", "nested index" };
        static void Main(string[] args)
        {
            foreach (string eType in eTypes)
            {
                try
                {
                    Console.WriteLine("Main() try block reached.");
                    Console.WriteLine("ThrowException(\"{0}\")called.", eType);
                    ThrowException(eType);
                    Console.WriteLine("Main() try block continues.");
                }
                catch (System.IndexOutOfRangeException e)
                {
                    Console.WriteLine("Main() Systrm.IndexOutOfRangeException catch" + "block reached.Message:\n\"{0}\"", e.Message);
                }
                finally 
                {
                    Console.WriteLine("Main() finally block reached.");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void ThrowException(string exceptionType)
        {
            Console.WriteLine("ThrowException(\"{0}\") reached.", exceptionType);
            switch (exceptionType)
            {
                case "none":
                    Console.WriteLine("Not throwing an exception.");
                    break;
                case "simple":
                    Console.WriteLine("Throwing System.Exception.");
                    throw(new System.Exception());
                    break;
                case "index":
                    Console.WriteLine("Throwing System.IndexOutOfRangeException.");
                    eTypes[4]="error";
                    break;
                case "nested index":
                    try
                    {
                        Console.WriteLine("ThrowException(\"nested index\")" + "try block reached.");
                        Console.WriteLine("ThrowException(\"index\")called.");
                        ThrowException("index");
                    }
                    catch
                    {
                        Console.WriteLine("ThrowException(\"nested index\")general" + "catch block reached.");
                    }
                    finally 
                    {
                        Console.WriteLine("ThrowException(\"nested index\")finally" + "block reached.");
                    }
                    break;
            }
        }
    }
}



------解决方案--------------------
throw(new System.Exception());
这句代码就是显式抛一个System.Exception异常的,要全部输出的话把这句去掉吧。
还有这是什么书啊?这段代码要干嘛啊?不理解。