📄 faultcenter.cpp
字号:
#include "StdAfx.h"
#include "FaultCenter.h"
#include <stdio.h>
#include <WinSock2.h>
namespace fs
{
namespace error
{
BOOL FaultCenter::TryCatch( LPCTSTR type,LPCTSTR funName,INT retval )
{
if (_T("socket")==type)
{
return ProcessSocket(funName,retval);
}
return TRUE;
}
BOOL FaultCenter::ProcessSocket( LPCTSTR funName,INT retval )
{
if (_T("WSAStartup")==funName)
{
if (0!=retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("socket")==funName)
{
if (INVALID_SOCKET==retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("bind")==funName)
{
if (SOCKET_ERROR==retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("listen")==funName)
{
if (SOCKET_ERROR ==retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("accept")==funName)
{
if (INVALID_SOCKET ==retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("recv")==funName)
{
if (SOCKET_ERROR==retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("send")==funName)
{
if (SOCKET_ERROR==retval)
{
PrintfErrorCode(funName);
return FALSE;
}
}
else if (_T("connect")==funName)
{
if (SOCKET_ERROR==retval)
{
PrintfErrorCode(funName);
//ExitProcess(-1);
return FALSE;
}
}
return TRUE;
}
void FaultCenter::PrintfErrorCode( LPCTSTR funName,DWORD errorCode )
{
#ifdef _DEBUG
#ifdef _UNICODE
wprintf(_T("%s error code:%d\n"),funName,errorCode);
#else
printf("%s error code:%d\n",funName,errorCode);
#endif
TCHAR szBuf[100];
TCHAR caption[30];
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM ,
NULL,
errorCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
wsprintf(szBuf,
_T("%s failed with error %d: \r\r%s"),
funName, errorCode, lpMsgBuf);
wsprintf(caption,
_T("%s error"),
funName);
MessageBox(NULL, szBuf, caption, MB_OK);
LocalFree(lpMsgBuf);
#endif
}
void FaultCenter::PrintfErrorCode( LPCTSTR funName)
{
#ifdef _DEBUG
PrintfErrorCode( funName,WSAGetLastError() );
#endif
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -