当前上下文中不存在ThrowException

时间:2011-02-09 02:26:07

标签: c# .net

在vs2010中做一些练习。

使用try / catch / finally并获取以下消息:

当前上下文中不存在Throw Exception。 我错过了使用声明来使用ThrowExcpetion吗?

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

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");
                Console.WriteLine("Throwing: \"{0}\") Called.",eType);

                ThrowException(eType);
                Console.WriteLine("Main() try continuing");

            }
            catch (System.IndexOutOfRangeException e)
            {
                Console.WriteLine("Main System.indexoutofrange catch",
                    e.Message);
            }
            finally
            {
                Console.WriteLine("Main finally");
            }
            Console.WriteLine();
        }
        Console.ReadKey();

    }
}

4 个答案:

答案 0 :(得分:3)

您没有定义名为ThrowException的方法。

如果你想提出异常,那不是这样做的。你会这样做:

 throw new SomeTypeOfException(eType);

鉴于您的测试,我怀疑您想要:

 throw new IndexOutOfRangeException(eType);

有关详细信息,请参阅throw (C# Reference)

答案 1 :(得分:1)

它不是函数ThrowException()。它的声明;抛出新的异常(“一些消息”);

答案 2 :(得分:0)

为什么不使用

throw new Exception(eType);

答案 3 :(得分:0)

故意抛出异常的语法只是

throw new WhateverException(yourMessage, yourInnerException);

典型的异常也有构造函数重载,它们只接受消息或根本不接受任何参数。