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

Important

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

Syntax

int _set_error_mode(  
   int modeval   
);  

Parameters

modeval
Destination of error messages.

Return Value

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

Remarks

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.

Parameter Description
_OUT_TO_DEFAULT Error sink is determined by __app_type.
_OUT_TO_STDERR Error sink is a standard error.
_OUT_TO_MSGBOX Error sink is a message box.
_REPORT_ERRMODE Report 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.

Requirements

Routine Required header
_set_error_mode <stdlib.h>

Example

  
      // 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.  

See Also

assert Macro, _assert, _wassert