`
234390216
  • 浏览: 10233113 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462629
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775527
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398371
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395023
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679990
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530895
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183955
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467939
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151403
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68154
社区版块
存档分类
最新评论

Oracle——12异常

阅读更多


语句执行过程中,可能会因为异常造成损失,甚至是系统崩溃。为了避免这种情况的发生,必须对异常进行处理。PL/SQL提供了对异常进行处理的方法。该方法会使得在PL/SQL代码部分执行的过程中无论何时发生了异常错误,都会自动转向执行异常处理部分。

 

1、预定义异常

预定义异常是由系统产生的。比如在出现0为除数的时候,系统会产生一个预定义的ZERO_DIVIDE异常。示例如下:

 

		declare 
			num1 number := 2;
			num2 number := 0;
			num3 number;
		begin
			num3 := num1/num2; --当执行这句的时候,系统捕捉到异常会自动转到异常处理部分,最后输出“不能除0”。
			exception
			when zero_divide then
				dbms_output.put_line('不能除0');
			when too_many_rows then
				dbms_output.put_line('too many rows');
		end;
 

如果在当前块中没有处理异常的代码,并且begin/end块是嵌套的,程序将继续在外部块中寻找处理异常的代码块,直到找到一个。如果最终没有处理异常的代码块存在,程序将结束。当对异常进行了处理后,程序将继续执行异常代码块之后的代码。

 

2、自定义异常

用户如果需要自定义异常的话,可以先定义一个exception变量,然后使用raise语句来抛出一个异常,然后在捕捉异常的时候捕捉对应的抛出异常。示例代码如下:

 

		declare
			selfDefineException exception; /*定义异常变量*/
			num1 number := 2;
			num2 number := 3;
			num3 number;
		begin
			num3 := num1 + num2;
			if num3=5 then
				raise selfDefineException; /*抛出自定义的异常*/
			end if;
			exception
				when selfDefineException then /*捕获自定义的异常*/
					dbms_output.put_line("selfDefineException");
				when zero_divide then
					dbms_output.put_line("不能除0");
		end;
		
 

3、使用others异常

对于那些没有直接捕捉的异常,都可以使用others异常进行捕捉,others异常可以单独使用,但当与其他异常处理一起使用的时候必须放在所有情况的最末尾。示例代码如下:

 

		declare 
			num1 number := 2;
			num2 number := 0;
			num3 number;
		begin
			num3 := num1/num2; --当执行这句的时候,系统捕捉到异常会自动转到异常处理部分,最后输出“不能除0”。
			exception
			when others then /*这里直接捕捉others异常*/
				dbms_output.put_line('不能除0');
		end;
2
1
分享到:
评论
1 楼 liuyinhuan 2012-06-09  
  

相关推荐

    深入解析Oracle——DBA入门、进阶与诊断案例

    《深入解析Oracle——DBA入门、进阶与诊断案例》是一本专为Oracle数据库管理员(DBA)设计的详尽指南。这本书旨在帮助初学者掌握Oracle数据库的基本操作,并引导有经验的DBA深入理解Oracle的高级特性,同时提供实用...

    「安全架构」EasyDB for Oracle——基于阿里云的Oracle最佳实践 - 应急响应.zip

    《「安全架构」EasyDB for Oracle——基于阿里云的Oracle最佳实践》 在当今数字化时代,数据安全成为了企业和组织的核心关切。这篇文档聚焦于“EasyDB for Oracle”这一解决方案,它充分利用了阿里云的先进技术,为...

    Oracle SOA 套件——Oracle BPEL 流程管理器

    ### Oracle SOA 套件——Oracle BPEL 流程管理器 #### 执行概况与背景 在当今快速变化的市场环境下,企业面临着前所未有的挑战:市场动态变化迅速、竞争压力持续增大以及客户需求多样化。这些因素共同作用,对企业...

    Oracle经典教程1——走进Oracle

    ### Oracle经典教程1——走进Oracle #### Oracle简介 Oracle是一种基于对象的关系型数据库管理系统,它由美国甲骨文公司开发并维护。Oracle数据库系统因其高度可靠性和强大的数据处理能力而闻名,广泛应用于各种...

    java连接oracle数据库———sqlHelper类

    在Java编程中,连接Oracle数据库是一项常见的任务,用于执行SQL查询、更新和其他数据库操作。`sqlHelper`类是一个自定义的工具类,旨在简化这个过程,提供一个方便、高效的接口来处理数据库交互。本篇文章将深入探讨...

    ORACLE游标与异常处理

    阅读提供的文档如《Oracle+PLSQL语言入门》、《Oracle数据库PL-SQL学习资料之五——异常处理》和《oracle存储过程中的异常处理》,可以进一步深入学习这些概念并提升您的Oracle数据库编程技能。

    深入解析Oracle--DBA入门、进阶与诊断案例

    1. 故障排查:通过日志分析,定位数据库运行异常的原因,如SQL性能问题、锁等待、资源争用等。 2. 系统监控:利用Oracle企业管理器(EM)、SQL*Plus及其他工具,实时监控数据库状态,包括CPU使用率、I/O性能、内存...

    java操作Oracle数据库——ARRAY、TABLE类型批量入库

    在实际应用中,你可能还需要处理异常、事务管理等细节。另外,如果你使用的是Spring框架,可以利用JdbcTemplate或NamedParameterJdbcTemplate简化数据库操作。 总之,通过Java操作Oracle的ARRAY和TABLE类型,我们...

    STRUTS——Oracle登陆

    在"STRUTS——Oracle登陆"这个主题中,我们关注的是如何使用Struts框架来实现Oracle数据库的用户登录功能。Oracle数据库是世界上最广泛使用的数据库系统之一,常用于大型企业的数据存储和管理。Struts与Oracle的结合...

    ORACLE 游标 异常 存储过程

    在本篇讨论中,我们将深入理解Oracle游标、异常处理以及如何在存储过程中使用它们。 1. **Oracle游标**: - **定义**:Oracle游标是数据库系统提供的一种机制,用于在结果集中定位并处理单条记录。它实际上是一个...

    oracle内部培训资料——游标

    ### Oracle内部培训资料——游标知识点详解 #### 一、游标概述 游标是Oracle数据库中用于处理SQL查询返回的多行记录的一种机制。它允许用户逐行地访问查询结果,这对于处理不确定数量的数据非常有用。游标分为两种...

    Oracle+11g+从入门到精通——光盘源码

    通过这个"Oracle 11g从入门到精通——光盘源码"的压缩包,你可以实践这些知识点,将理论与实际操作相结合,从而更深入地理解Oracle数据库系统。同时,这些源码也可以帮助你在遇到问题时找到解决方案,或作为开发新...

    oracle系统培训课件——资料包(7个ppt).rar

    这个“Oracle系统培训课件——资料包(7个ppt)”压缩文件包含了一系列PPT教程,旨在帮助学习者深入理解Oracle系统的各个方面。下面我们将详细探讨这些课件可能涵盖的关键知识点。 1. **Oracle概述**: - Oracle...

    Oracle9i讲义——东油内部教材

    PL/SQL是Oracle特有的过程式语言,它扩展了SQL的功能,允许编写复杂的程序逻辑,如循环、条件判断和异常处理,常用于数据库的业务逻辑实现。 在实际操作中,登录到SQL*PLUS是使用Oracle数据库的第一步。在Windows ...

    Oracle 8基础——对服务器编程

    Oracle 8的基础对服务器编程主要涉及的是Oracle的PL/SQL编程语言,这是一种强大的过程化语言,用于构建与Oracle数据库交互的应用程序。以下是对PL/SQL语言基础的详细说明: 1. **PL/SQL语言结构**: - **程序块**...

    Oracle经典教程5——PLSQL程序设计

    ### Oracle经典教程5——PLSQL程序设计:深入解读与应用 #### 一、PL/SQL:Oracle的强大武器 ##### 1.1 PL/SQL简介 PL/SQL(Procedural Language for SQL)是Oracle数据库特有的过程化编程语言,它将SQL的强大力量...

    .net连接oracle的简单实例——学生、教师、课程管理系统

    - 在数据库操作中,必须处理可能出现的异常,如OracleException,确保程序的健壮性。 - 使用try-catch-finally结构捕获异常,提供适当的错误信息给用户。 9. **数据绑定和数据验证**: - 数据控件(如...

    oracle经典书籍(Oracle 9i初学者指南.zip、Oracle专家高级编程.pdf、Effective+Oracle+by+Design.pdf)

    这里提到的三本书籍——"Oracle 9i初学者指南.zip"、"Oracle专家高级编程.pdf"以及"Effective Oracle by Design.pdf"都是Oracle学习者和专业开发者的宝贵资源。 "Oracle 9i初学者指南.zip":这是一本针对Oracle 9i...

    .net连接oracle的简单实例——学生、教师、课程管理系统。

    在.NET开发环境中,Oracle数据库是常见的数据存储平台之一,用于构建高效、稳定的企业级应用程序。本实例将介绍如何使用.NET连接Oracle数据库,并实现一个简单的学生、教师和课程管理系统,特别是涉及选课管理功能。...

    个人学习笔记——oracle_dbconsole解决办法

    2. **连接异常**:通过DBConsole尝试连接数据库时提示连接失败或超时。 3. **配置丢失**:之前的一些配置信息丢失,比如监听器配置等。 这些问题往往会影响到数据库的正常管理和监控,因此需要及时解决。 #### ...

Global site tag (gtag.js) - Google Analytics