/*------------------------------------------------------------------------------ * Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team * * Distributable under the terms of either the Apache License (Version 2.0) or * the GNU Lesser General Public License, as specified in the COPYING file. ------------------------------------------------------------------------------*/ #ifndef _lucene_debug_error_ #define _lucene_debug_error_ #if defined(_LUCENE_PRAGMA_ONCE) # pragma once #endif #define CL_ERR_UNKNOWN -1 #define CL_ERR_IO 1 #define CL_ERR_NullPointer 2 #define CL_ERR_Runtime 3 #define CL_ERR_IllegalArgument 4 #define CL_ERR_Parse 5 #define CL_ERR_TokenMgr 6 #define CL_ERR_UnsupportedOperation 7 #define CL_ERR_InvalidState 8 #define CL_ERR_IndexOutOfBounds 9 #define CL_ERR_TooManyClauses 10 #define CL_ERR_RAMTransaction 11 #define CL_ERR_InvalidCast 12 #define CL_ERR_IllegalState 13 //////////////////////////////////////////////////////// //error try/throw/catch definitions //////////////////////////////////////////////////////// #ifdef _CL_DISABLE_NATIVE_EXCEPTIONS /*#define try _jpr_Try #define _CLCATCH _jpr_Catch #define _CLFINALLY(x) xxxx #define _CLTHROWA(y) _jpr_Throw #define _THROWA_DEL(y) _jpr_Throw #define _RETHROW(x) _jpr_Throw #define _CLTHROWT(y) _jpr_Throw #define _THROWS ,_jpr_Throws*/ #else class CLuceneError { int error_number; char* _awhat; TCHAR* _twhat; public: CLuceneError(const CLuceneError& clone); CLuceneError(int num, const char* str, bool ownstr); #ifdef _UCS2 CLuceneError(int num, const TCHAR* str, bool ownstr); #endif int number(){return error_number;} char* what(); TCHAR* twhat(); ~CLuceneError() throw(); }; //#define _THROWS //does nothing #define _CLFINALLY(x) catch(...){ x; throw; } x //note: code x is not run if return is called #define _CLTHROWA(number, str) throw CLuceneError(number, str,false) #define _CLTHROWT(number, str) throw CLuceneError(number, str,false) #define _CLTHROWA_DEL(number, str) throw CLuceneError(number, str,true) //throw a string ensures the value is deleted #define _CLTHROWT_DEL(number, str) throw CLuceneError(number, str,true) //throw a string ensures the value is deleted #endif //_LUCENE_DISABLE_EXCEPTIONS // //////////////////////////////////////////////////////// #endif