_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.
Valeur | 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.