43.2. �����������Ĵ���

�ڷ��������������ɵĴ��󣬾����Լ���־��ϢӦ���� ereport������������ǰ�� elog ������ ���������ʹ���Ѿ����ӵ��㹻������Щ�����ˡ�

ÿ����Ϣ�������������Ҫ�أ�һ�����ؼ��𣨷�Χ�� DEBUG �� PANIC����һ����Ҫ��Ϣ�ı��� ����֮�⻹�п�ѡ��Ԫ�أ�����ľ���һ����ѭ SQL ��׼�� SQLSTATE ϰ�ߵĴ����ʶ�롣 ereport ����ֻ��һ���Ǻ��������Ĵ�����Ҫ��Ϊ�˱�������Ϣ���ɿ������� C ������ĺ������á� ereport ֱ�ӽ��ܵ�Ψһ���������ؼ��� ����Ϣ�ı����κθ�����ϢԪ�ض���ͨ���� ereport ��������ø������������� errmsg�����ɵġ�

���͵ĵ��� ereport �ķ�ʽ����������������������

ereport(ERROR,
        (errcode(ERRCODE_DIVISION_BY_ZERO),
         errmsg("division by zero")));

���������������ؼ��� ERROR ��һ�����󣩡� ���� errcode ��ʹ��һ�������� src/include/utils/errcodes.h ����ĺ����� SQLSTATE ������롣 errmsg �����ṩ��Ҫ����Ϣ�ı��� ��ע������Բ������Χ�ڸ�������������Χ — ��ô����Ȼ���ˣ������﷨���DZ���ġ�

Ȼ����һ�������ӵ����ӣ�

ereport(ERROR,
        (errcode(ERRCODE_AMBIGUOUS_FUNCTION),
         errmsg("function %s is not unique",
                func_signature_string(funcname, nargs,
                                      actual_arg_types)),
         errhint("Unable to choose a best candidate function. "
                 "You may need to add explicit typecasts.")));

���������ʾ��ʹ�ø�ʽ�����������ʱ��ֵǶ��һ����Ϣ�ı����÷��� ͬ�������ṩ��һ����ѡ��"��ʾ"��Ϣ��

ereport ���õĸ��������У�

����һ����һЩ�� elog ��������Ȼ��Ƶ��ʹ�á� һ�� elog ����

elog(level, "format string", ...);

��ȫ��Ч��

ereport(level, (errmsg_internal("format string", ...)));

��ע�� SQLSTATE �����������ȱʡ�ģ�������Ϣ�ִ���û�а����ڹ��ʻ���Ϣ�ֵ�� ��ˣ�elog Ӧ��ֻ�����ڲ������Լ��Ͳ�ĵ�����־�� �κ���ͨ�û�����Ȥ����Ϣ��Ӧ��ͨ�� ereport ���ɡ� ��Ȼ�����д����ڲ���"�����ܷ���"�Ĵ�����ʹ�� elog�� ��Ϊ��Щ��Ϣ��û��DZ�ʾ�ü�Щ�á�

��д�õĴ�����Ϣ�Ľ�������� Section 43.3 �ҵ���

Notes

[1]

Ҳ����˵���ڵ��� ereport ���õ�ʱ��ǰ����ֵ�� �ڸ������������� errno ���޸Ľ�����Ӱ������ ����������� errmsg �IJ����б�����ȷ��д strerror(errno)�� ��һ��Ͳ��ܱ�֤�ˣ���ˣ��벻Ҫ��ô����