惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cloudbric
Cloudbric
V
Visual Studio Blog
L
LangChain Blog
A
About on SuperTechFans
B
Blog
T
Tenable Blog
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Palo Alto Networks Blog
U
Unit 42
WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
C
Check Point Blog
Security Latest
Security Latest
M
MIT News - Artificial intelligence
Application and Cybersecurity Blog
Application and Cybersecurity Blog
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
S
Securelist
Security Archives - TechRepublic
Security Archives - TechRepublic
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Latest news
Latest news
GbyAI
GbyAI
T
Troy Hunt's Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
V2EX - 技术
V2EX - 技术
小众软件
小众软件
Google DeepMind News
Google DeepMind News
K
Kaspersky official blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
Netflix TechBlog - Medium
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed

博客园 - 林枫山

五、审核的服务插件踩坑记录 2025年教我学英语 - 常用句子 2025年教我学英语 - 其他 2025年教我学英语 - 动植物 2025年教我学英语 - 玩 2025年教我学英语 - 学 2025年教我学英语 - 出行 2025年教我学英语 - 穿、衣 2025年教我学英语 - 美食 2026年计划执行 辞旧迎新,迎接2026 coze手册 泛微E9手册 我这些年走过的大弯路 一、AI常用开发提示词 2025年教我自己说英语 - 住和用 2025年新年总结 01、奇瑞鸟ERP手册 用最笨的方法去发展 云星空实施手册
二、代码模板:多条件判断跳转自定义异常且回滚
林枫山 · 2025-07-10 · via 博客园 - 林枫山

DECLARE
-- 声明自定义异常
value_too_high EXCEPTION;
status_invalid EXCEPTION;

-- 示例变量(可根据实际需求修改)
input_value NUMBER := 150; -- 输入值
status_flag VARCHAR2(10) := 'X'; -- 状态标志
BEGIN
-- 第一个条件检查:数值是否过大
IF input_value > 100 THEN
RAISE value_too_high;
END IF;

-- 第二个条件检查:状态是否有效
IF status_flag NOT IN ('A', 'B', 'C') THEN
RAISE status_invalid;
END IF;

-- 正常业务逻辑(示例DML操作)
-- 这里可以放置实际的INSERT/UPDATE/DELETE语句
DBMS_OUTPUT.PUT_LINE('执行DML操作...');
-- 示例:UPDATE employees SET salary = salary * 1.1 WHERE department_id = 10;

-- 提交事务(只有当所有检查通过时)
COMMIT;
DBMS_OUTPUT.PUT_LINE('操作成功完成,事务已提交');

EXCEPTION
-- 捕获第一个自定义异常
WHEN value_too_high THEN
DBMS_OUTPUT.PUT_LINE('错误: 输入值 ' || input_value || ' 超过最大允许值(100)');
ROLLBACK; -- 回滚事务
DBMS_OUTPUT.PUT_LINE('事务已回滚');

-- 捕获第二个自定义异常
WHEN status_invalid THEN
DBMS_OUTPUT.PUT_LINE('错误: 状态标识 "' || status_flag || '" 无效,应为A/B/C');
ROLLBACK; -- 回滚事务
DBMS_OUTPUT.PUT_LINE('事务已回滚');

-- 默认异常捕获(处理所有未预期异常)
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生未预期的错误: ' || SQLERRM);
ROLLBACK; -- 回滚事务
DBMS_OUTPUT.PUT_LINE('事务已回滚');
END;