2011-02-09 4 views
2

Faire un peu de pratique dans VS2010.ThrowException n'existe pas dans le contexte actuel

travailler avec un try/catch/finally et faire passer le message suivant:

Exception ne Throw existe pas dans le contexte actuel. Ai-je manqué une instruction using pour utiliser 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

Qu'est-ce que 'ThrowException()'? Ce n'est pas une méthode intégrée, où la définissez-vous? – BoltClock

+0

Si vous essayez d'apprendre à gérer les exceptions, apprenez à ne pas afficher ex.Message. Utilisez ex.ToString() pour obtenir l'exception entière. –

Répondre

0

Pourquoi ne pas utiliser

throw new Exception(eType); 
0

La syntaxe pour lancer une exception est intentionnellement simplement

throw new WhateverException(yourMessage, yourInnerException); 

L'exception typique a également constructeur que soit accepter surchargent que le message ou pas de paramètres du tout.

3

Vous n'avez pas une méthode nommée ThrowException définie.

Si vous essayez de soulever une exception, ce n'est pas comment faire. Tu ferais:

throw new SomeTypeOfException(eType); 

Compte tenu de votre test, je suppose que vous voulez:

throw new IndexOutOfRangeException(eType); 

Pour plus de détails, voir throw (C# Reference).

1

ne est pas un ThrowException() fonction. C'est une déclaration; lancer une nouvelle exception ("un message");

Questions connexes