You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PL/SQL异常处理报错:自定义异常未被处理,求排查原因

PL/SQL异常未处理问题分析

你的代码核心问题是语法格式错误,导致自定义异常的处理分支未被PL/SQL引擎正确识别:

  • 在EXCEPTION块中,RAISE my_exception;语句后未换行,直接衔接WHEN my_exception THEN,使得这部分代码被解析为不完整语句,WHEN my_exception分支并未被纳入异常处理逻辑。当NO_DATA_FOUND触发后,你抛出了my_exception,但无对应处理分支,因此出现"未处理用户定义异常"的错误。

修正后的代码

DECLARE
  my_exception EXCEPTION;
  result1 VARCHAR2(50);
  result2 NUMBER;
BEGIN
  SELECT brand, year INTO result1, result2 FROM cars WHERE car_id=200;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    RAISE my_exception;
  WHEN my_exception THEN
    DBMS_OUTPUT.PUT_LINE('Exception has been thrown');
END;
/

简化优化方案

如果仅需捕获无匹配行异常并输出提示,无需额外自定义异常,可简化代码:

DECLARE
  result1 VARCHAR2(50);
  result2 NUMBER;
BEGIN
  SELECT brand, year INTO result1, result2 FROM cars WHERE car_id=200;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('未找到匹配的记录');
END;
/

内容的提问来源于stack exchange,提问作者Mr.Cheese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:20:26