当前位置: 首页 > wzjs >正文

网站开发 asp.net 还要学什么最好的bt种子搜索引擎

网站开发 asp.net 还要学什么,最好的bt种子搜索引擎,多个域名 指向同一个网站,去除 做网站就用建站之星在 Oracle PL/SQL 中,异常(Exception) 是处理运行时错误的机制,能够将错误逻辑与业务逻辑解耦,保证程序的健壮性和可维护性。以下从 原理 和 案例 两个方面详细解析 一、异常处理的核心原理 1. 异常触发机制 自动触发…

在 Oracle PL/SQL 中,异常(Exception) 是处理运行时错误的机制,能够将错误逻辑与业务逻辑解耦,保证程序的健壮性和可维护性。以下从 原理 和 案例 两个方面详细解析

一、异常处理的核心原理

1. 异常触发机制
  • 自动触发:当 PL/SQL 代码执行过程中遇到错误(如除零、查询无数据、唯一约束冲突等),Oracle 会自动抛出异常。

  • 手动触发:开发者可以通过 RAISE 或 RAISE_APPLICATION_ERROR 手动触发异常(例如业务规则校验失败)。

2. 异常捕获与传播
  • 捕获流程

    1. 程序执行到错误点时,立即中断当前操作。

    2. 跳转到当前块的 EXCEPTION 部分。

    3. 按顺序匹配 WHEN 子句中的异常类型。

    4. 若找到匹配的异常处理器,执行对应逻辑;否则将异常传播到外层块。

  • 传播规则

    • 如果当前块未处理异常,异常会向上一级块传递。

    • 若所有外层块均未处理,程序终止并向调用者返回错误。

3. 异常分类

类型触发方式示例
预定义异常Oracle 内置错误(有固定名称)NO_DATA_FOUNDTOO_MANY_ROWS
非预定义异常Oracle 错误(有错误代码,需手动绑定名称)ORA-02291(外键约束错误)
用户自定义异常开发者显式声明并触发的业务错误库存不足、金额无效等

 

二、异常处理案例解析

预定义异常处理

查询员工工资时处理无数据和多行数据错误

DECLAREv_salary EMPLOYEES_TEM.salary%TYPE;
BEGINSELECT salary INTO v_salaryFROM EMPLOYEES_TEMWHERE employee_id = 999; -- 触发 NO_DATA_FOUNDDBMS_OUTPUT.PUT_LINE('salary:' || v_salary) ;
EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE('错误:员工不存在!');WHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE('错误:返回多行数据!');WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('系统错误: ' || SQLERRM);
END;

触发 返回多行数据

非预定义异常处理

处理外键约束错误(ORA-02291)。

DECLAREe_foreign_key EXCEPTION;PRAGMA EXCEPTION_INIT(e_foreign_key, -2291); -- 绑定错误码
BEGININSERT INTO orders (order_id, customer_id) VALUES (1001, 999); -- 假设 customer_id 不存在EXCEPTIONWHEN e_foreign_key THENDBMS_OUTPUT.PUT_LINE('错误:客户ID不存在!');
END;

用户自定义异常

验证订单金额有效性。

DECLAREe_invalid_amount EXCEPTION;v_order_amount NUMBER := -100;
BEGINIF v_order_amount < 0 THENRAISE e_invalid_amount; -- 手动触发异常END IF;EXCEPTIONWHEN e_invalid_amount THENDBMS_OUTPUT.PUT_LINE('错误:金额不能为负数!');
END;
事务回滚与错误日志

转账操作失败时回滚并记录日志

DECLAREv_from_balance NUMBER := 500;v_to_balance   NUMBER := 0;
BEGIN-- 扣款UPDATE accounts SET balance = balance - 1000 WHERE account_id = 1001;-- 存款(假设此处出错)UPDATE accounts SET balance = balance + 1000 WHERE account_id = 1002;COMMIT;EXCEPTIONWHEN OTHERS THENROLLBACK;INSERT INTO error_log (error_code, error_msg, error_time)VALUES (SQLCODE, SQLERRM, SYSDATE);COMMIT;RAISE_APPLICATION_ERROR(-20001, '转账失败:' || SQLERRM);
END;

三、关键注意事项

  1. 异常处理顺序

    • 先捕获具体异常(如 NO_DATA_FOUND),最后处理 WHEN OTHERS

    • 避免 WHEN OTHERS THEN NULL(隐藏错误)。

  2. 事务控制

    • 在 EXCEPTION 块中明确 COMMIT 或 ROLLBACK

    • 若异常未被处理,Oracle 会自动回滚未提交的事务。

  3. 错误日志记录

    • 使用 SQLCODE 和 SQLERRM 获取错误详情。

    • 将错误信息持久化到日志表。

  4. 自定义错误

    • 使用 RAISE_APPLICATION_ERROR 抛出自定义业务错误(错误码范围:-20000 到 -20999)。

  • 核心价值:异常处理将错误逻辑与业务逻辑分离,提升代码可读性和可维护性。

  • 适用场景:数据校验、事务控制、批量操作、外部系统调用等。

  • 最佳实践:精准捕获异常、明确事务边界、记录错误日志、避免静默失败。

通过合理设计异常处理逻辑,可以有效提升 Oracle PL/SQL 程序的健壮性和容错能力。

http://www.dtcms.com/wzjs/315470.html

相关文章:

  • 我想帮别人做网站有这样的平台吗百度地图优化排名方法
  • 企业网站建设制作设计哪家最专业排行榜软件
  • 图文网站模版周口网站建设公司
  • 莱芜哪里做网站seo网站优化服务商
  • 做公司网站需要几天营销引流都有什么方法
  • 怎么做网站搜索框搜索长沙关键词排名软件
  • 鄂州网站制作企业seo优化宣传
  • 玩具网站的制作怎么做网站推广
  • 莱芜二手房出售信息最新房源湖南seo博客seo交流
  • 建筑类专业做教育的网站淄博做网站的公司
  • 建设和交通局网站石家庄疫情防控最新政策
  • 网站推广句子seo优化方案策划书
  • 公司营销型网站建设策划书网络营销出来可以干什么工作
  • 做网站备案地点怎么优化一个网站
  • 网页设计和网站设计网站推广常用方法
  • 安全生产标准化建设网站三门峡网站seo
  • 宜兴网站开发济南seo公司
  • 网站图片做cdn汽车营销策划方案ppt
  • 深圳市网站维护专业seo站长工具
  • 哪里找专业做网站的公司搜索引擎优化搜索优化
  • 如何做婚恋网站网站建设的数字化和互联网化
  • 动态网站制作报价上海优化公司有哪些
  • 山东东营信息网seo托管
  • 怎么建淘宝优惠券网站做推广seo sem
  • 招商网站建设优势如何快速推广自己的产品
  • 软件开发要什么学历seo点击排名软件哪里好
  • 旅游做的视频网站网络宣传推广方案
  • 学校网站的平台用途及建设规划百度查一下
  • 织梦做网站教程宁波网站制作与推广价格
  • 做视频网站了几百万网络营销经典失败案例