/*------------------------------------------------------------------------------ | |
* 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 |