Avertissement C6318
Mal définie
__try
/__except
: utilisation de la constante EXCEPTION_CONTINUE_SEARCH ou d’une autre constante qui prend la valeur zéro dans l’expression de filtre d’exception. Le code du bloc du gestionnaire d’exceptions n’est pas exécuté
Notes
Cet avertissement indique que si une exception se produit dans le bloc protégé de ce gestionnaire d’exceptions structurées, l’exception ne sera pas gérée, car la constante EXCECPTION_CONTINUE_SEARCH
est utilisée dans l’expression de filtre d’exception.
Ce code équivaut au bloc protégé sans le bloc de gestionnaire d’exceptions, car le bloc de gestionnaire n’est pas exécuté.
Nom de l’analyse du code : EXCEPTIONCONTINUESEARCH
Exemple
Le code suivant génère cet avertissement :
#include <excpt.h>
#include <stdio.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except (EXCEPTION_CONTINUE_SEARCH) // warning C6318
{
puts("Exception Occurred");
}
}
Pour corriger cet avertissement, utilisez le code suivant :
#include <excpt.h>
#include <stdio.h>
#include <windows.h>
void f (char *pch)
{
__try
{
// assignment might fail
*pch = 0;
}
__except( (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
{
puts("Access violation");
}
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour