Files
secondo/apis/python2/SecondoAPI/libs_pkg/exception_handler.ipynb
2026-01-23 17:03:45 +08:00

220 lines
7.3 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"\n",
"This dictionary contains all error codes and descriptions of errors for Secondo server.\n",
"\"\"\"\n",
"secondo_errors = {\n",
"\n",
"0: \"ERR_NO_ERROR\",\n",
"1: \"ERR_CMD_NOT_RECOGNIZED\",\n",
"2: \"ERR_IN_QUERY_EXPR\",\n",
"3: \"ERR_EXPR_NOT_EVALUABLE\",\n",
"4: \"ERR_NO_OBJ_CREATED\",\n",
"5: \"ERR_NO_TYPE_DEFINED\",\n",
"6: \"ERR_NO_DATABASE_OPEN\",\n",
"7: \"ERR_DATABASE_OPEN\",\n",
"701: \"ERR_CREATE_DATABASE\",\n",
"702: \"ERR_DELETE_DATABASE\",\n",
"8: \"ERR_UNDEF_OBJ_VALUE\",\n",
"9: \"ERR_SYNTAX_ERROR\",\n",
"\n",
"10: \"ERR_IDENT_USED\",\n",
"11: \"ERR_IDENT_UNKNOWN_TYPE\",\n",
"12: \"ERR_IDENT_UNKNOWN_OBJ\",\n",
"13: \"ERR_EXPR_TYPE_NEQ_OBJ_TYPE\",\n",
"14: \"ERR_TYPE_NAME_USED_BY_OBJ\",\n",
"15: \"ERR_IDENT_RESERVED\",\n",
"16: \"ERR_UPDATE_FOR_DERIVED_OBJ_UNSUPPORTED\",\n",
"\n",
"20: \"ERR_TRANSACTION_ACTIVE\",\n",
"21: \"ERR_NO_TRANSACTION_ACTIVE\",\n",
"22: \"ERR_BEGIN_TRANSACTION_FAILED\",\n",
"23: \"ERR_COMMIT_OR_ABORT_FAILED\",\n",
"24: \"ERR_IN_DEFINITIONS_FILE\",\n",
"25: \"ERR_IDENT_UNKNOWN_DB_NAME\",\n",
"26: \"ERR_PROBLEM_IN_WRITING_TO_FILE\",\n",
"27: \"ERR_DB_NAME_NEQ_IDENT\",\n",
"28: \"ERR_PROBLEM_IN_READING_FILE\",\n",
"29: \"ERR_IN_LIST_STRUCTURE_IN_FILE\",\n",
"\n",
"30: \"ERR_CMD_NOT_YET_IMPL\",\n",
"31: \"ERR_CMD_LEVEL_NOT_YET_IMPL\",\n",
"32: \"ERR_CMD_NOT_IMPL_AT_THIS_LEVEL\",\n",
"\n",
"\n",
"\n",
"40: \"ERR_IN_TYPE_DEFINITION\",\n",
"41: \"ERR_NAME_DOUBLY_DEFINED\",\n",
"42: \"ERR_IN_TYPE_EXPRESSION\",\n",
" \n",
"50: \"ERR_IN_OBJ_DEFINITION\",\n",
"51: \"ERR_OBJ_NAME_DOUBLY_DEFINED\",\n",
"52: \"ERR_WRONG_TYPE_EXPR_FOR_OBJ\",\n",
"53: \"ERR_WRONG_LIST_REP_FOR_OBJ\",\n",
"\n",
"60: \"ERR_KIND_DOES_NOT_MATCH_TYPE_EXPR\",\n",
"61: \"ERR_SPECIFIC_KIND_CHECKING_ERROR\",\n",
"\n",
"70: \"ERR_IN_VALUELIST_TC_V\",\n",
"71: \"ERR_SPECIFIC_FOR_TYPE_CONSTRUCTOR\",\n",
"72: \"ERR_IN_VALUELIST_TC\",\n",
"73: \"ERR_AT_POS_IN_VALUELIST\",\n",
"\n",
"80: \"ERR_IN_SECONDO_PROTOCOL\",\n",
"81: \"ERR_CONNECTION_TO_SERVER_LOST\",\n",
"82: \"ERR_IDENT_UNKNOWN_DB_OBJECT\",\n",
"83: \"ERR_OBJ_NAME_IN_FILE_NEQ_IDENT\",\n",
"84: \"ERR_IDENT_ALREADY_KNOWN_IN_DB\",\n",
"85: \"ERR_ALGEBRA_UNKNOWN\",\n",
"86: \"ERR_IN_FILETRANSFER\",\n",
"87: \"ERR_INVALID_FILE_NAME\",\n",
"88: \"ERR_FILE_EXISTS\",\n",
"89: \"ERR_FILE_NOT_EXISTS\",\n",
"\n",
"100: \"ERR_SYSTEM_ERROR\",\n",
"101: \"ERR_SYSTEM_DIED\",\n",
"\n",
"-1: \"ERR_UNKNOWN_RETURN_CODE\",\n",
"\n",
"\n",
"-999: \"E_SMI_BDB\",\n",
"\n",
"-1001: \"E_SMI_STARTUP\",\n",
"-1002: \"E_SMI_SHUTDOWN\",\n",
"-1003: \"E_SMI_DB_CREATE\",\n",
"-1004: \"E_SMI_DB_OPEN\",\n",
"-1005: \"E_SMI_DB_CLOSE\",\n",
"-1006: \"E_SMI_DB_ERASE\",\n",
"-1007: \"E_SMI_DB_NOTOPEN\",\n",
"-1008: \"E_SMI_DB_NOTCLOSED\",\n",
"-1009: \"E_SMI_DB_INVALIDNAME\",\n",
"-10010: \"E_SMI_DB_EXISTING\",\n",
"-10011: \"E_SMI_DB_NOTEXISTING\",\n",
"-10012: \"E_SMI_DB_LOOKUP\",\n",
"-10013: \"E_SMI_DB_INSERT_CATALOG\",\n",
"-10014: \"E_SMI_DB_DELETE_CATALOG\",\n",
"-10015: \"E_SMI_DB_UPDATE_CATALOG\",\n",
"-10016: \"E_SMI_DB_NOTFOUND\",\n",
"-10017: \"E_SMI_DB_NOTLOCKED\",\n",
"-10018: \"E_SMI_DB_REGISTER\",\n",
"-10019: \"E_SMI_DB_UNREGISTER\",\n",
"-10020: \"E_SMI_DB_LOCK\",\n",
"-10021: \"E_SMI_DB_UNLOCK\",\n",
"-10022: \"E_SMI_DB_LOCK_DEADLOCK\",\n",
"\n",
"-1051: \"E_SMI_TXN_BEGIN\",\n",
"-1052: \"E_SMI_TXN_COMMIT\",\n",
"-1053: \"E_SMI_TXN_ABORT\",\n",
"-1054: \"E_SMI_TXN_RUNNING\",\n",
"-1055: \"E_SMI_TXN_NOTRUNNING\",\n",
"\n",
"-1101: \"E_SMI_CATALOG_LOOKUP\",\n",
"-1102: \"E_SMI_CATALOG_INSERT\",\n",
"-1103: \"E_SMI_CATALOG_DELETE\",\n",
"-1104: \"E_SMI_CATALOG_KEYEXIST\",\n",
"-1105: \"E_SMI_CATALOG_NOTFOUND\",\n",
"-1106: \"E_SMI_CATALOG_RENAME\",\n",
"\n",
"-1201: \"E_SMI_FILE_INVALIDNAME\",\n",
"-1202: \"E_SMI_FILE_NOFILEID\",\n",
"-1203: \"E_SMI_FILE_BADCONTEXT\",\n",
"-1204: \"E_SMI_FILE_CREATE\",\n",
"-1205: \"E_SMI_FILE_OPEN\",\n",
"-1206: \"E_SMI_FILE_CLOSE\",\n",
"-1207: \"E_SMI_FILE_KEYEXIST\",\n",
"-1208: \"E_SMI_FILE_ISTEMP\",\n",
"\n",
"-1251: \"E_SMI_RECORD_NOTINIT\",\n",
"-1252: \"E_SMI_RECORD_READ\",\n",
"-1253: \"E_SMI_RECORD_WRITE\",\n",
"-1254: \"E_SMI_RECORD_SELECT\",\n",
"-1255: \"E_SMI_RECORD_APPEND\",\n",
"-1256: \"E_SMI_RECORD_DELETE\",\n",
"-1257: \"E_SMI_RECORD_SELECTALL\",\n",
"-1258: \"E_SMI_RECORD_INSERT\",\n",
"-1259: \"E_SMI_RECORD_TRUNCATE\",\n",
"-1260: \"E_SMI_RECORD_READONLY\",\n",
"-1261: \"E_SMI_RECORD_FINISH\",\n",
"\n",
"-1271: \"E_SMI_CURSOR_NOTOPEN\",\n",
"-1272: \"E_SMI_CURSOR_NEXT\",\n",
"-1273: \"E_SMI_CURSOR_ENDOFSCAN\",\n",
"-1274: \"E_SMI_CURSOR_DELETE\",\n",
"-1275: \"E_SMI_CURSOR_FINISH\",\n",
"\n",
"-1290: \"E_SMI_PREFETCH_RANGE\"\n",
"}\n",
"\n",
"\n",
"\n",
"class GeneralError(Exception):\n",
" \"\"\"\n",
" This exception class is the base class of all other error exceptions,\n",
" used to catch all errors with one single except statement.\n",
" \"\"\"\n",
" def __init__(self, error, *args):\n",
" self.error = error\n",
" super(GeneralError, self).__init__(error, *args)\n",
"\n",
"\n",
"class SecondoAPI_Error(GeneralError):\n",
" \"\"\"\n",
" The class that is responsible for raising Exception for errors that are related\n",
" to the PySecondo interface rather than the database itself.\n",
" \"\"\"\n",
" def __init__(self, error, *args):\n",
" self.error = error\n",
" super(SecondoAPI_Error, self).__init__(error, *args)\n",
"\n",
"\n",
"class SecondoError(GeneralError):\n",
" \"\"\"\n",
" The class that is responsible for raising Exception for errors that are related to the database.\n",
" \"\"\"\n",
" def __init__(self, error, *args):\n",
" self.error = error\n",
" super(SecondoError, self).__init__(error, *args)\n",
"\n",
"\n",
"class UnexpectedSystemError(SecondoError):\n",
" \"\"\"\n",
" The class that is responsible for raising Exception for errors that are related to the database's operation\n",
" e.g. an unexpected disconnect, the data source name not found,\n",
" a transaction could not be processed, a memory allocation error, etc.\n",
" \"\"\"\n",
" def __init__(self, error, *args):\n",
" self.error = error\n",
" super(UnexpectedSystemError, self).__init__(error, *args)\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}