blob: 5286af230f7b4501495a2ae64f4384f232e8e8fc [file] [log] [blame]
/*------------------------------------------------------------------------------
* 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