00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _FRDI_EXCEPTION_H
00020 #define _FRDI_EXCEPTION_H
00021
00022
00023 #ifndef SILENT
00024
00025 #define frdiDebug(frdi_debug_arg) frdiExceptionDebug2(__FILE__, __LINE__, frdi_debug_arg)
00026 #else
00027 #define debug(frdi_debug_arg)
00028 #endif
00029
00032 char *frdiStrCpy(frdi_exception *eh, char *in);
00033
00034
00037 void frdiExceptionDebug2(char *filename, int linenum, char *str);
00038
00041 void frdiExceptionDebug(char *str);
00042
00050 int frdiExceptionReport(frdi_exception *exception);
00051
00054 void frdiExceptionThrow(frdi_exception *exception, int err_num, char *message);
00055
00058 frdi_dict *frdiExceptionLookupEnglish();
00059
00062 frdi_exception *frdiExceptionNew();
00063
00066 void frdiExceptionFree(frdi_exception *exception);
00067
00070 #define frdiExceptionArrive(frdi_exception_arg) setjmp((frdi_exception_arg)->location)
00071
00074 #define frdiExceptionLeave(frdi_exception_arg, frdi_status_arg) longjmp((frdi_exception_arg)->location, frdi_status_arg)
00075
00076
00077 #endif
00078
00079