在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();
}
}
答案 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);
典型的异常也有构造函数重载,它们只接受消息或根本不接受任何参数。