📄 exc.h
字号:
/*------------------------------------------------------------------------- * * exc.h * POSTGRES exception handling definitions. * * * Copyright (c) 1994, Regents of the University of California * * $Id: exc.h,v 1.15 1999/02/13 23:22:18 momjian Exp $ * *------------------------------------------------------------------------- */#ifndef EXC_H#define EXC_H#include <setjmp.h>#include "config.h"extern char *ExcFileName;extern Index ExcLineNumber;/* * ExcMessage and Exception are now defined in c.h */#if defined(JMP_BUF)typedef jmp_buf ExcContext;#elsetypedef sigjmp_buf ExcContext;#endiftypedef Exception *ExcId;typedef long ExcDetail;typedef char *ExcData;typedef struct ExcFrame{ struct ExcFrame *link; ExcContext context; ExcId id; ExcDetail detail; ExcData data; ExcMessage message;} ExcFrame;extern ExcFrame *ExcCurFrameP;/* These are not used anywhere 1998/6/15 */#define ExcBegin() \do { \ ExcFrame exception;燶 \ exception.link = ExcCurFrameP; \ if (sigsetjmp(exception.context, 1) == 0) \ { \ ExcCurFrameP = &exception;#define ExcExcept() \ } \ ExcCurFrameP = exception.link; \ } \ else \ { \ {#define ExcEnd() \ } \ } \} while(0)#define raise4(x, t, d, message) \ ExcRaise(&(x), (ExcDetail)(t), (ExcData)(d), (ExcMessage)(message))#define reraise() \ raise4(*exception.id,exception.detail,exception.data,exception.message)typedef void ExcProc (Exception *, ExcDetail, ExcData, ExcMessage);/* * prototypes for functions in exc.c */extern void EnableExceptionHandling(bool on);extern void ExcRaise(Exception *excP, ExcDetail detail, ExcData data, ExcMessage message);/* * prototypes for functions in excabort.c */extern void ExcAbort(const Exception *excP, ExcDetail detail, ExcData data, ExcMessage message);#endif /* EXC_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -