Здравствуйте! Как правильно перехватить RaiseException ? При (1) исключении все работает нормально ... Появляется окно "MyRaiseException working", а затем окно "exception". При (2) исключении MyRaiseException "зацикливается", т.е. раз 5 появляется окно "MyRaiseException working", а до окна "exception" не доходит, и все заканчивается "access violetion" Код (Text): void __fastcall TForm1::Button1Click(TObject *Sender) { try { (1) StrToInt("except"); (2) int s = 5/StrToInt("0"); } catch(...) { ShowMessage("exception"); } } void __fastcall TForm1::Button2Click(TObject *Sender) { pfnCurrent = GetProcAddress(GetModuleHandle("Kernel32"), "RaiseException"); HANDLE pfnNew = MyRaiseException; // Код Рихтера, ReplaceIATEntryInOneMod(PCSTR pszCalleeModName, PROC pfnCurrent, PROC pfnNew, HMODULE hmodCaller) ... ... ... } typedef void (WINAPI *Raise_Exception)(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR* lpArguments); void MyRaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR* lpArguments) { ShowMessage("MyRaiseException working"); ((Raise_Exception)pfnCurrent)(dwExceptionCode, dwExceptionFlags, nNumberOfArguments, lpArguments); }