2010-03-06 13 views
1

Im je développe actuellement une classe (en cours d'exécution de plusieurs tests individuels sur autres classes dans le même paquet ) automatisé « test ». Le but du fichier de test est de montrer si chaque test a réussi ou échoué. Certains des fichiers testés ne sont pas écrits correctement en créant une exception ArrayOutOfBoundsException lors de l'exécution du test, ce qui provoque le crash de mon fichier de test et ne se poursuit pas jusqu'à la fin d'autres tests. Je ne suis pas en mesure de modifier le code pour corriger les erreurs sur le projet testé.Arrêt ArrayOutOfBoundsException de mettre un terme à l'exécution du programme en Java

-> comment arrêter une exception à l'arrêt de l'exécution du programme en Java sans créer de nouvelles classes

Merci pour votre aide, des conseils et de partage.

+0

Pouvez-vous modifier le code dans les tests? –

+0

Je ne peux pas évaluer le travail des autres. Merci de votre intérêt. – Carlos

Répondre

4

Meilleure façon d'arrêter cela: corrigez le code pour effectuer une vérification appropriée.

Si vous ne pouvez pas corriger le code qui est en fait un échec, vous pouvez intercepter l'exception explicitement à un niveau « extérieur », connectez-vous un avertissement et continuer avec le fichier suivant:

try 
{ 
    operationWhichMightThrow(); 
} 
catch (ArrayIndexOutOfBoundsException e) 
{ 
    log.warning("Failed file " + filename, e); 
    // Do whatever you need to continue to the next file. 
} 
+0

Ok merci beaucoup Jon, je vais utiliser le if-catch, comme je ne suis pas autorisé à modifier le code donné suis "évaluer" d'autres travaux. Bonne chance. – Carlos

+0

Donc, vous pouvez modifier le code dans les tests? –

+0

@Jon Skeet, après avoir essayé de comprendre comment utiliser le bloc try-catch ne va pas très bien s'entraîner dans ce cas. Je ne voudrais pas créer de classes supplémentaires, est-il possible d'attraper une méthode dans la même classe "testfile"? – Carlos

1

Catch l'exception et l'enregistrer comme un échec de test.