_set_error_mode

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at _set_error_mode.

Modifies __error_mode to determine a non-default location where the C runtime writes an error message for an error that might end the program.

System_CAPS_ICON_important.jpg Important

This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW.

int _set_error_mode(  
   int modeval   
);  

Parameters

modeval
Destination of error messages.

Returns the old setting or -1 if an error occurs.

Controls the error output sink by setting the value of __error_mode. For example, you can direct output to a standard error or use the MessageBox API.

The modeval parameter can be set to one of the following values.

ParameterDescription
_OUT_TO_DEFAULTError sink is determined by __app_type.
_OUT_TO_STDERRError sink is a standard error.
_OUT_TO_MSGBOXError sink is a message box.
_REPORT_ERRMODEReport the current __error_mode value.

If a value other than those listed is passed in, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue,_set_error_mode sets errno to EINVAL and returns -1.

When it's used with an assert, _set_error_mode displays the failed statement in the dialog box and gives you the option of choosing the Ignore button so that you can continue to run the program.

RoutineRequired header
_set_error_mode<stdlib.h>
  
      // 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.  

assert Macro, _assert, _wassert

Show: