# 0Z000 — diagnostics_exception

> PostgreSQL SQLSTATE 0Z000 的源码边界与诊断参考。
---

# 0Z000

## 速览 {#at-a-glance}

SQLSTATE 0Z000 是 Diagnostics Exception 类别。在 PostgreSQL 固定源码中，具体的 PL/pgSQL 路径属于成员 0Z002；类别行本身不是独立的报告调用组。观察到 diagnostics 成员时可以用 0Z000 分类，但诊断必须保留成员码和对应消息。

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| 字段 | 值 |
| --- | --- |
| SQLSTATE | `0Z000` |
| 条件名 | `diagnostics_exception` |
| 状态 | `有效` |
| 已知存在于 | `9.2.0` |
| 锁定快照 | `9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3` |
| 宏 | `ERRCODE_DIAGNOSTICS_EXCEPTION` |
| 别名 | `—` |

<!-- source facts: data/errcodes/0Z000.json -->
<!-- END SQLSTATE FACTS -->

## 含义 {#meaning}

该类别覆盖访问诊断状态时产生的错误。`pl_exec.c` 中已确认的成员路径在 `GET STACKED DIAGNOSTICS` 或无参数 `RAISE` 位于活动异常处理器之外时报告 0Z002。这个成员证据只解释一条 PostgreSQL 路径，不能把所有 diagnostics API 失败都说成 0Z000 报告。

## 消息 {#messages}

由于有界扫描没有解析出原生报告调用，本页不采用未经确认的 PostgreSQL 固定消息变体。

## 诊断 {#diagnosis}

先读取成员码和消息。对于 0Z002，检查语句是否处在拥有堆叠错误的 `EXCEPTION` 处理器内；普通函数控制流和处理器范围比类别名称更关键。如果是其他成员或产生者，就沿该组件的源码追踪，并保留其诊断字段。

## 处理 {#response}

把依赖堆叠状态的 `GET STACKED DIAGNOSTICS` 和无参数 `RAISE` 放进对应的活动 PL/pgSQL 异常处理器。如果要在处理器外抛出新错误，应提供明确的条件/消息，而不是尝试复用堆叠状态。保留成员错误，不要因为它属于 0Z 类就自动重试失败例程。

## 版本 {#versions}

锁定目录将该条件的已知下界记为 PostgreSQL 9.2.0。事实块列出已发布快照；源码路径状态仅限于下方固定的 PostgreSQL 18.6 资料。

## 相关 {#related}

[`0Z002`](../0z002/), [`P0001`](../p0001/)

## 来源 {#sources}

固定的[errcodes 定义](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L141)确认类别。具体成员路径是 [GET STACKED DIAGNOSTICS](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/pl/plpgsql/src/pl_exec.c#L2421-L2423) 和[无参数 RAISE](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/pl/plpgsql/src/pl_exec.c#L3747-L3749)；[PL/pgSQL 错误捕获文档](https://www.postgresql.org/docs/18/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING)定义处理器边界。 详见结构化[证据记录](../../data/evidence/0z000.json)，其中记录固定源码路径、扫描范围和未解决的运行边界。
