Partager via


_set_error_mode

Modifie __error_mode pour déterminer un emplacement autre que celui utilisé par défaut dans lequel le Runtime C écrit un message d'erreur pour une erreur qui risque de mettre fin au programme.

Important

Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

int _set_error_mode(
   int mode_val
);

Paramètres

mode_val
Destination des messages d'erreur.

Valeur retournée

Retourne l'ancien paramètre ou -1 si une erreur se produit.

Notes

Contrôle l'intercepteur de sortie d'erreurs en définissant la valeur de __error_mode. Par exemple, vous pouvez diriger la sortie vers une erreur standard ou utiliser l'API MessageBox.

Le paramètre mode_val peut avoir l'une des valeurs suivantes.

Value Description
_OUT_TO_DEFAULT L'intercepteur d'erreurs est déterminé par __app_type.
_OUT_TO_STDERR L'intercepteur d'erreurs est une erreur standard.
_OUT_TO_MSGBOX L'intercepteur d'erreurs est une boîte de message.
_REPORT_ERRMODE Fait état de la valeur actuelle de __error_mode.

Si une valeur est passée en dehors des valeurs répertoriées, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, _set_error_mode affecte à errno la valeur EINVAL et retourne -1.

Lorsqu’il est utilisé avec un assert, _set_error_mode affiche l’instruction qui a échoué dans la boîte de dialogue et vous donne la possibilité de choisir le bouton Ignorer , afin que vous puissiez continuer à exécuter le programme.

Spécifications

Routine En-tête requis
_set_error_mode <stdlib.h>

Exemple

// crt_set_error_mode.c
// compile with: /c
#include <stdlib.h>
#include <assert.h>

int main()
{
   _set_error_mode(_OUT_TO_STDERR);
   assert(2+2==5);
}
Assertion failed: 2+2==5, file crt_set_error_mode.c, line 8

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Voir aussi

assert Macro, _assert, _wassert