dwExceptionCode , . 28 , . 270 ( , ). 29 , , "" ( , Microsoft). 3130 , , 29.
0 ( 2).
1 ( 6).
2 ( ).
3 ( ).
dwExceptionFlags 0, EXCEPTION_NONCONTINUABLE , EXCEPTION_CONTINUE_EXECUTION; TION_NONCONTINUABLE_EXCEPTION.
lpArguments , NULL, cArguments ( ), 32- , . EXCEPTION_MAXIMUM_PARAMETERS, 15. GetExceptionInformation.
, . , , 6.
:
ReportError. , , . , . , , , , , . ReportError , .
, , ( 7).
.
( 8), .
|
|
( ) , .
ReportException. , ReportError ( 2), . . try-, , . , ReportException , ReportError. . 4.2.
ReportException 4.1. , , ReportError.
4.1. ReportException:
/* ReportError . */
VOID ReportException(LPCTSTR UserMessage, DWORD ExceptionCode)
/* . */
{
ReportError(UserMessage, 0, TRUE);
/* , . */
if (ExceptionCode!= 0) RaiseException((0x0FFFFFFF & ExceptionCode) | 0xE0000000, 0, 0, NULL);
return;
}
ReportException .
, UNIX, SEH. , . , .
UNIX , Windows. Windows , .
Windows.
"-" :
SIGILL EXCEPTION_PRIV_INSTRUCTION
SIGSEGV EXCEPTION_ACCESS_VIOLATION
SIGFPE , , EXCEPTION_FLT_DIVIDE_BY_ZERO
SIGUSR1 SIGUSR2 ,
RaiseException raise.
Windows SIGILL, SIGSEGV SIGFPE , raise . SIGINT Windows .
UNIX kill (kill ), , Windows GenerateConsoleCtrlEvent ( 6). SIGKILL Windows TerminateProcess TerminateThread, ( ) , (. 6 7).