J'ai inclus mon brouillon de code source ci-dessous. J'apprécierais toute contribution sur ce que je fais incorrectement. Je ne suis pas sûr que ma syntaxe soit correcte ... Aussi, j'ai trouvé un exemple sur Cramster; mais je ne suis pas sûr que l'exemple ait mis en application le "indice" comme indiqué (veuillez le signaler si je me trompe dans ceci) par les instructions. Je pense aussi que la boucle "for" est plutôt répétitive puisqu'elle semble établir la même chose que l'indice est supposé établir ... Ce code est en réponse à l'affectation suivante:C# Erreur (s) dans un bloc d'essai impliquant une boucle, un tableau, un indice et une exception IndexOutOfRangeException
"Ecrire un programme en Décrire un bloc try dans lequel vous placez une boucle qui tente d'accéder à chaque élément du tableau, en incrémentant un indice compris entre 0 et 10. Créer un bloc catch que attrape l'éventuelle IndexOutOfRangeException; dans le bloc, affichez "Now vous êtes allés trop loin." sur l'écran. Enregistrez le fichier sous le nom GoTooFar.cs. "
Microsoft® Visual C# ® 2008, Introduction à la programmation orientée objet, 3e, Joyce Farrell
Mon code source d'erreurs:
using System;
namespace Further
{
public class GoTooFar
{
public static void Main()
{
private static int[] fiveIntArray = {1, 2, 3, 4, 5};
//private static int CUTOFF = 11;
int subscript;
int rate;
try
{
//bool further;
//public static int DetermineArray(int further)
for(int x = 0; x < 10; x++)
if(further < 11)
throw new IndexOutofRangeException("Now you've gone too far.");
subscript = 0;
else
subscript = 10;
rate = fiveIntArray[subscript];
return rate;
}
catch(IndexOutOfRangeException e)
{
throw;
Console.WriteLine(e.StackTrace);
//Console.WriteLine("Now you've gone too far.");
//return e;
}
}
}
}
// L'exemple que je trouve sur Cramster.com :
using System;
namespace Console2
{
class Class1
{
static void Main(string[] args)
{
int[] numbers = new int[5] {1, 2, 3, 4, 5};
try
{
for(int i=0;i<10;i++)
if(i>5)
throw new IndexOutOfRangeException("Now you’ve gone too far.");
}
catch(IndexOutOfRangeException e)
{
throw;
}
}//end ma...
}
}
Merci beaucoup pour votre aide. J'ai vraiment apprécié que vous preniez le temps de souligner les terribles défauts de mon code (par opposition à simplement me montrer comment cela devrait être fait). Parce que vous avez pris le temps de le faire, j'ai beaucoup appris de votre commentaire. Je dois dire que ce genre de critique constructive m'aide beaucoup plus à apprendre à programmer qu'à voir un code source spécifique qui fonctionne parce qu'il me montre les principales erreurs que j'ai commises. Cela dit, j'aime mieux votre code source que celui sur cramster. Moins est plus... :-) – Nooob