`
121059457
  • 浏览: 23522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习笔记:16异常处理

SQL 
阅读更多
16-1:传递异常到调用环境
	DECLARE
	  v_ename emp.ename%TYPE;
	BEGIN
	  SELECT ename INTO v_ename FROM emp WHERE empno=&no;
	  dbms_output.put_line('雇员名:'||v_ename);
	END;
	/
16-2:捕获异常
	DECLARE
	  v_ename emp.ename%TYPE;
	BEGIN
	  SELECT ename INTO v_ename FROM emp WHERE empno=&no;
	  dbms_output.put_line('雇员名:'||v_ename);
	EXCEPTION
	  WHEN NO_DATA_FOUND THEN
	    dbms_output.put_line('雇员号不正确,请核实雇员号!');
	END;
	/
16-3:使用预定义异常
	DECLARE
	  v_ename emp.ename%TYPE;
	BEGIN
	  SELECT ename INTO v_ename FROM emp WHERE sal=&salary;
	  dbms_output.put_line('姓名:'||v_ename);
	EXCEPTION
	  WHEN NO_DATA_FOUND THEN
	    dbms_output.put_line('不存在该工资值的雇员');
	  WHEN TOO_MANY_ROWS THEN
	    dbms_output.put_line('多个雇员具有该工资');
	END;
	/
16-4:非预定义异常
	DECLARE
	  e_integrity EXCEPTION;
	  PRAGMA EXCEPTION_INIT(e_integrity,-2291);
	  name emp.ename%TYPE:=LOWER('&name');
	  dno emp.deptno%TYPE:=&dno;
	BEGIN
	  UPDATE emp SET deptno=dno WHERE LOWER(ename)=name;
	EXCEPTION
	  WHEN e_integrity THEN
	    dbms_output.put_line('该部门不存在');
	END;
	/
16-5:自定义异常
	DECLARE
	  e_integrity EXCEPTION;
	  e_no_rows EXCEPTION;
	  PRAGMA EXCEPTION_INIT(e_integrity,-2291);
	  name emp.ename%TYPE:=LOWER('&name');
	  dno emp.deptno%TYPE:=&dno;
	BEGIN
	  UPDATE emp SET deptno=dno WHERE LOWER(ename)=name;
	  IF SQL%NOTFOUND THEN
	     RAISE e_no_rows;
	  END IF;
	EXCEPTION
	  WHEN e_integrity THEN
	    dbms_output.put_line('该部门不存在');
	  WHEN e_no_rows THEN
	    dbms_output.put_line('该雇员不存在');
	END;
	/
16-6:使用sqlcode和sqlerrm
	BEGIN
	  DELETE FROM dept WHERE deptno=&dno;
	EXCEPTION
	  WHEN OTHERS THEN
	    dbms_output.put_line('错误号:'||SQLCODE);
	    dbms_output.put_line('错误消息:'||SQLERRM);
	END;
	/
16-7:raise_application_error
	CREATE OR REPLACE PROCEDURE update_sal
	  (name VARCHAR2,salary NUMBER)
	IS
	BEGIN
	  UPDATE emp SET sal=salary WHERE LOWER(ename)=LOWER(name);
	  IF SQL%NOTFOUND THEN
	     RAISE_APPLICATION_ERROR(-20000,'该雇员不存在');
	  END IF;
	END;
	/
	exec update_sal('mary',1000)
16-8:不使用编译预警
	CREATE OR REPLACE PROCEDURE dead_code AS
	BEGIN
	  IF TRUE THEN
	    dbms_output.put_line('TRUE');
	  ELSE
	    dbms_output.put_line('FALSE'); -- 死代码
	  END IF;
	END;
	/
16-9:使用初始化参数plsql_warnings配置编译警告
	ALTER SESSION SET plsql_warnings='ENABLE:ALL';
	CREATE OR REPLACE PROCEDURE dead_code AS
	BEGIN
	  IF TRUE THEN
	    dbms_output.put_line('TRUE');
	  ELSE
	    dbms_output.put_line('FALSE'); -- 死代码
	  END IF;
	END;
	/
	show errors
16-10:使用包dbms_warning配置编译警告
	exec dbms_warning.set_warning_setting_string('ENABLE:ALL' ,'SESSION');
	CREATE OR REPLACE PROCEDURE update_sal
	(name VARCHAR2,salary VARCHAR2)
	IS
	BEGIN
	  UPDATE emp SET sal=salary WHERE ename=name;
	END;
	/
	show errors





























分享到:
评论

相关推荐

    Java项目学习笔记: SSM实战项目-Java高并发秒杀API,详细流程+学习笔记

    在本Java项目学习笔记中,我们关注的是SSM(Spring、SpringMVC、MyBatis)框架下的高并发秒杀API实现。这是一个典型的电商场景,其中涉及到的技术点广泛且实用,对于提升Java开发者处理高并发问题的能力至关重要。...

    学习笔记:32/64位列举系统进程名称和ID

    5. **异常处理**:在实现过程中,我们需要考虑可能出现的错误,如权限问题、无效的快照句柄等,应使用Try...Except结构进行异常处理。 6. **用户界面**:在Delphi 2010环境下,我们可以使用VCL(Visual Component ...

    Java学习笔记之异常

    ### Java学习笔记之异常 #### 一、异常概念与理解 异常是指在程序运行过程中发生的非预期事件,这些事件可能会导致程序无法正常执行。在Java中,异常处理是一种非常重要的机制,它允许开发者以优雅的方式处理错误...

    林信良java学习笔记

    接着,深入探讨了异常处理机制,这是Java程序健壮性的重要保障。读者将学习到如何捕获和处理运行时错误,以及如何通过try-catch-finally结构来编写更安全的代码。 此外,《林信良Java学习笔记》还涵盖了集合框架,...

    java学习笔记——异常

    Java学习笔记——异常 在Java编程中,异常处理是一项至关重要的技能,它允许开发者优雅地处理程序运行时可能遇到的问题,防止程序意外终止,并提供有用的反馈信息。异常是程序执行过程中遇到的不正常情况,例如除以...

    JavaEE学习笔记

    Core Java是Java的基础,包括Java语言的核心特性,如标识符、关键字、数据类型、表达式、流控制、数组、面向对象编程(OO思想)、异常处理、GUI编程、事件处理模型、线程、标准I/O流与文件处理、网络编程等。...

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

    学习笔记:学习笔记

    例如,Python的面向对象编程、Java的异常处理、C++的模板机制,或是JavaScript的异步编程模型。理解并掌握这些语言的特性有助于提高代码质量和效率。 2. 操作系统:操作系统是计算机的心脏,学习笔记中可能涵盖了...

    C语言学习笔记 C语言学习笔记

    在C语言中,错误处理通常依赖于条件判断和异常处理机制。学会使用断点、单步执行、查看变量值等调试技巧,有助于找出和修复程序错误。 七、标准库与IO操作 C语言的标准库提供了一系列的函数,如stdio.h中的输入...

    Learning hard C# 学习笔记

    异常处理是C#中一个重要的错误处理机制。通过try-catch-finally语句块,开发者可以在程序运行时捕获并处理可能出现的异常,确保程序的健壮性。 此外,C#还引入了泛型,这是一种创建类型安全集合的强大工具。泛型...

    非常详细javaSE学习笔记.rar

    4. **异常处理**:Java中的try-catch-finally语句块,异常类层次结构,自定义异常等,这些都是Java程序中处理错误和异常的重要部分。 5. **集合框架**:ArrayList,LinkedList,HashMap,HashSet等容器的使用,以及...

    J2ME学习笔记 J2ME学习笔记 J2ME学习笔记

    根据提供的标题、描述、标签及部分内容,我们可以提炼出关于J2ME的学习笔记中的关键知识点,主要聚焦于Java语言的基础概念,特别是与初始化和字符串相关的部分。 ### 初始化 #### 概述 - **成员变量初始化**:所有...

    Java学习笔记之异常处理

    Java学习笔记之异常处理 Java学习笔记之异常处理是Java编程语言中的一种重要机制,用于处理程序中出现的异常情况。异常是指程序在执行过程中出现的非正常情况,例如数组下标越界、算术运算异常、空指针异常等。在...

    Go语言学习笔记.pdf

    为了深入了解Go语言,学习笔记通常包含语言的基本概念、语法特性、开发环境配置及核心功能的使用方法。 首先,Go语言相较于C++等传统编程语言,有一些显著的特征区别。Go语言为了简化设计,不支持函数重载和操作符...

    J2ME学习笔记 入门 学习经验

    j2me学习笔记【5】——抛出异常处理的小例子 j2me学习笔记【6】——获取日期时间 j2me学习笔记【7】——复选框的应用 j2me学习笔记【8】——TextField的使用实例 j2me学习笔记【9】——List中复选框的使用实例 j2me...

    Python学习笔记.pdf

    ### Python学习笔记知识点详解 #### 一、Python简介与特性 **标题与描述解析:** "Python学习笔记.pdf" 的标题直接指出了文档的主题——Python的学习资料,而描述的重复表明该文档的主要内容即为Python的学习笔记...

    java学习笔记markdown

    1. **Java基础**:介绍Java语言的基本语法,如变量、数据类型、运算符、控制流程(条件语句、循环)、数组、字符串以及异常处理。这些基础知识是理解和编写任何Java程序的基石。 2. **面向对象编程**:深入讲解Java...

    C++ 学习笔记 整理

    4. **异常处理**:通过try-catch语句,C++提供了异常处理机制,用于捕获和处理运行时错误,增强了程序的健壮性。 5. **STL(标准模板库)**:STL是C++的一个重要组成部分,包含容器(如vector、list、set)、迭代器...

    Java学习笔记,异常机制

    在Java中,异常处理是通过异常类来实现的,这些类描述了异常信息并提供了处理异常的方法。 异常处理主要有四个关键字:`try`、`catch`、`finally`和`throw`。`try`块包含可能会抛出异常的代码,`catch`块用来捕获并...

    python学习笔记-文件与异常

    总结起来,“Python学习笔记-文件与异常”可能涵盖了文件操作的各个方面,包括基本操作、异常处理、缓冲和性能优化,以及高级特性。通过深入学习这些内容,开发者将能够编写出更稳定、更易于维护的Python程序。

Global site tag (gtag.js) - Google Analytics