errorhandling.hpp
来自「开源的ssl算法openssl,版本0.9.8H」· HPP 代码 · 共 148 行
HPP
148 行
#ifdef __cplusplusextern "C" {#endif#ifndef kGenericError #define kGenericError -1#endifextern char *gErrorMessage;void SetErrorMessage(const char *theErrorMessage);void SetErrorMessageAndAppendLongInt(const char *theErrorMessage,const long theLongInt);void SetErrorMessageAndCStrAndLongInt(const char *theErrorMessage,const char * theCStr,const long theLongInt);void SetErrorMessageAndCStr(const char *theErrorMessage,const char * theCStr);void AppendCStrToErrorMessage(const char *theErrorMessage);void AppendLongIntToErrorMessage(const long theLongInt);char *GetErrorMessage(void);OSErr GetErrorMessageInNewHandle(Handle *inoutHandle);OSErr GetErrorMessageInExistingHandle(Handle inoutHandle);OSErr AppendErrorMessageToHandle(Handle inoutHandle);#ifdef __EXCEPTIONS_ENABLED__ void ThrowErrorMessageException(void);#endif// A bunch of evil macros that would be uneccessary if I were always using C++ !#define SetErrorMessageAndBailIfNil(theArg,theMessage) \{ \ if (theArg == nil) \ { \ SetErrorMessage(theMessage); \ errCode = kGenericError; \ goto EXITPOINT; \ } \}#define SetErrorMessageAndBail(theMessage) \{ \ SetErrorMessage(theMessage); \ errCode = kGenericError; \ goto EXITPOINT; \}#define SetErrorMessageAndLongIntAndBail(theMessage,theLongInt) \{ \ SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \ errCode = kGenericError; \ goto EXITPOINT; \}#define SetErrorMessageAndLongIntAndBailIfError(theErrCode,theMessage,theLongInt) \{ \ if (theErrCode != noErr) \ { \ SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \ errCode = theErrCode; \ goto EXITPOINT; \ } \}#define SetErrorMessageCStrLongIntAndBailIfError(theErrCode,theMessage,theCStr,theLongInt) \{ \ if (theErrCode != noErr) \ { \ SetErrorMessageAndCStrAndLongInt(theMessage,theCStr,theLongInt); \ errCode = theErrCode; \ goto EXITPOINT; \ } \}#define SetErrorMessageAndCStrAndBail(theMessage,theCStr) \{ \ SetErrorMessageAndCStr(theMessage,theCStr); \ errCode = kGenericError; \ goto EXITPOINT; \}#define SetErrorMessageAndBailIfError(theErrCode,theMessage) \{ \ if (theErrCode != noErr) \ { \ SetErrorMessage(theMessage); \ errCode = theErrCode; \ goto EXITPOINT; \ } \}#define SetErrorMessageAndLongIntAndBailIfNil(theArg,theMessage,theLongInt) \{ \ if (theArg == nil) \ { \ SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \ errCode = kGenericError; \ goto EXITPOINT; \ } \}#define BailIfError(theErrCode) \{ \ if ((theErrCode) != noErr) \ { \ goto EXITPOINT; \ } \}#define SetErrCodeAndBail(theErrCode) \{ \ errCode = theErrCode; \ \ goto EXITPOINT; \}#define SetErrorCodeAndMessageAndBail(theErrCode,theMessage) \{ \ SetErrorMessage(theMessage); \ errCode = theErrCode; \ goto EXITPOINT; \}#define BailNow() \{ \ errCode = kGenericError; \ goto EXITPOINT; \}#ifdef __cplusplus}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?