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 + -
显示快捷键?