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

网站建设公司华网天下买送活动php做的网站用什么后台

网站建设公司华网天下买送活动,php做的网站用什么后台,如何建立网站 个人,蚌埠市建设银行官方网站目录 一、命名的系统异常 1.常见命名的系统异常 2.预定义的系统异常数量以及描述 3.处理命名的系统异常的一般步骤 二、程序员定义的异常 1.概念 2.自定义异常的定义与抛出 3.自定义异常的处理 三、未命名的系统异常 1.概述 2.处理未命名的系统异常的方法 3.使用场景 …目录 一、命名的系统异常 1.常见命名的系统异常 2.预定义的系统异常数量以及描述 3.处理命名的系统异常的一般步骤 二、程序员定义的异常 1.概念 2.自定义异常的定义与抛出 3.自定义异常的处理 三、未命名的系统异常  1.概述 2.处理未命名的系统异常的方法 3.使用场景  四、未命名的程序员自定义的异常 1.概述 2.作用 3. 使用方法及示例 未命名的程序员自定义异常与程序员定义异常的区别  1.声明与抛出 2.错误代码和信息 3.使用场景  引言  在设计PL/SQL程序时经常会发生这样或者那样的错误异常处理就是针对错误进行处理的程序段Oracle中的异常处理分为系统预定义异常处理和自定义异常处理两部分。 异常的类型大概分为四类 1.命名的系统异常 2.程序员定义的异常 3.未命名的系统异常 4.未命名的程序员定义的异常 一、命名的系统异常 命名的系统异常是Oracle数据库为了处理常见的错误情况而预定的一组异常。它们由Oracle数据库在特定条件下自动抛出开发者就可以在PL/SQL程序中通过异常机制来捕获和处理这些异常。 1.常见命名的系统异常 NO_DATA_FOUND 错误代码ORA-01403 错误描述当执行SELECT INTO语句时如果没有返回任何数据就会抛出此异常。 示例 DECLAREv_name varchar(10); BEGINSELECT s_name INTO v_name from Students WHERE s_id 001; EXCEPTIONWHEN NOT_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE(未找到编号为001的学生); END; TOO_MANY_ROWS  错误代码ORA-01422 描述当执行SELECT INTO语句时如果返回多行则会抛出异常。 示例 DECLAREv_name varchar(10); BEGINSELECT s_name INTO v_name from Students WHERE s_id 001; EXCEPTIONWHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE(有多个编号为001的学生); END; 2.预定义的系统异常数量以及描述 数量大约24种。 异常名称异常编号SQLCODE描述ACCESS_INTO_NULL-6530尝试为未初始化的对象属性赋值时触发。CASE_NOT_FOUND-6592CASE语句中没有匹配的WHEN子句且没有设置ELSE子句时触发。COLLECTION_IS_NULL-6531尝试使用未初始化的集合元素时触发。CURSOR_ALREADY_OPEN-6511尝试打开一个已经打开的游标时触发。DUP_VAL_ON_INDEX-1尝试插入或更新数据时唯一索引对应的列上有重复的值时触发。INVALID_CURSOR-1001尝试使用无效的游标时触发。INVALID_NUMBER-1722尝试将字符转换为数字失败时触发。LOGIN_DENIED-1017尝试使用无效的用户名或密码登录Oracle数据库时触发。NO_DATA_FOUND-1403SELECT INTO语句未返回任何数据时触发。NOT_LOGGED_ON-1012尝试在未登录的情况下访问Oracle数据库时触发。PROGRAM_ERROR-6501PL/SQL内部错误可能需要重装数据字典或PL/SQL系统包时触发。ROWTYPE_MISMATCH-6504宿主游标变量与PL/SQL游标变量的返回类型不兼容时触发。SELF_IS_NULL-无固定编号使用对象类型时在NULL对象上调用对象方法时触发。STORAGE_ERROR-6500运行PL/SQL时超出内存空间或内存被破坏时触发。SUBSCRIPT_BEYOND_COUNT-6533尝试访问嵌套表或VARRAY时元素下标超出最大值时触发。SUBSCRIPT_OUTSIDE_LIMIT-6532使用嵌套表或VARRAY时元素下标为负数时触发。SYS_INVALID_ID-1410尝试使用无效的ROWID字符串时触发。TIMEOUT_ON_RESOURCE-51等待资源时超时触发。TOO_MANY_ROWS-1422SELECT INTO语句返回多行时触发。VALUE_ERROR-6502赋值时变量长度不足以容纳实际数据时触发。ZERO_DIVIDE-1476尝试执行除数为零的除法运算时触发。CURSOR_IS_OPEN-非标准示例尝试在游标已打开的情况下进行非法操作如重复打开时触发。COLLECTION_IS_LOCKED-非标准示例尝试访问已锁定的集合元素时触发。INVALID_TRANSACTION-非标准示例尝试执行无效的事务操作时触发。NETWORK_ERROR-非标准示例网络通信错误时触发。 说明 异常编号SQLCODEOracle数据库为每种异常分配了一个唯一的错误编号SQLCODE用于标识该异常。在异常处理中可以通过捕获异常编号来判断具体的错误类型。 异常名称Oracle数据库为每种异常提供了一个名称便于开发人员在代码中引用和处理。 描述简要说明了触发每种异常的条件和场景。 非标准异常上述列表中最后几种异常如CURSOR_IS_OPEN、COLLECTION_IS_LOCKED、INVALID_TRANSACTION、NETWORK_ERROR是示例性的用于说明可能的异常类型并非Oracle数据库标准预定义的异常。实际开发中这些异常可能需要开发人员根据业务需求自定义。 异常处理在PL/SQL程序中可以通过EXCEPTION块来捕获和处理这些预定义异常以确保程序的健壮性和可靠性。 3.处理命名的系统异常的一般步骤 捕获异常在PL/SQL程序中使用EXCEPTION块来捕获可能抛出的命名系统异常。 处理异常在捕获到异常后执行相应的处理逻辑如输出错误信息、记录日志、回滚事务等。 继续执行或者退出程序根据需求决定是继续执行后续代码还是退出程序。一旦进EXCEPTION块后续的代码指在BEGIN ... END块中EXCEPTION部分之后的代码将不会被执行。这过程简直和Java一摸一样 示例 DECLAREv_error_occurred BOOLEAN : FALSE;--变量v_error_occurred用于跟踪是否发生了错误以便在后续代码中采取适当的操作。 BEGIN-- 尝试执行一些可能引发异常的代码BEGIN-- 这里是可能抛出异常的代码RAISE NO_DATA_FOUND; -- 示例异常EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE(No data found, continuing with the next step.);v_error_occurred : TRUE; -- 标记错误已发生END;-- 后续的代码无论是否发生异常都会执行IF v_error_occurred THENDBMS_OUTPUT.PUT_LINE(An error occurred, but we are continuing with the process.);END IF;DBMS_OUTPUT.PUT_LINE(This is the subsequent code that will always be executed.);-- 更多的后续代码... END; 二、程序员定义的异常 1.概念 自定义异常是程序员根据业务逻辑需求在PL/SQL程序中显示声明的异常。当程序中出现特定条件时程序员可以显式地抛出这些自定义异常并在异常处理部分EXCEPTION进行捕获和处理。 2.自定义异常的定义与抛出 定义异常在块声明部分使用DECLARE关键字声明异常 DECLAREmy_custom_exception EXCEPTION; 抛出异常在程序执行部分使用RAISE语句抛出自定义异常。 BEGINIF condition THENRAISE my_custom_exception;END IF 3.自定义异常的处理 捕获异常在EXCEPTION块中使用WHEN...TEHN语句捕获并处理自定义异常。 EXCEPTION WHEN my_custom_exception THENDBMS_OUTPUT.PUT_LINE(自定义异常被触发);--处理异常记录日志事务回滚等 END 与其他异常一起处理在EXCEPTION块中程序员可以捕获和处理多种异常包括预定义异常和自定义异常。 EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE(未找到数据);WHEN my_custom_exception THENDBMS_OUTPUT.PUT_LINE(自定义异常被触发);WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(发生其他异常: || SQLERRM); OTHERS子句用于捕获和处理所有未显式捕获的异常。 三、未命名的系统异常  在PL/SQL中未命名的系统异常是指那些由Oracle数据库系统内部产生的、没有预定义异常名称的错误。这些异常通常以错误代码Oracle错误号的形式出现而没有与之直接对应的异常名。为了处理这些未命名的系统异常PL/SQL提供了相应的机制和语法。 1.概述 未命名的系统异常通常是由于违反Oracle数据库的内部规则或系统限制而产生的。这些异常没有预定义的异常名称但Oracle数据库为每个异常分配了一个唯一的错误代码Oracle错误号。例如当尝试删除一个具有子记录的父表记录时Oracle会抛出错误代码为-2292的未命名系统异常。 2.处理未命名的系统异常的方法 声明异常名称使用EXCEPTION关键字声明一个自定义的异常名称。 DECLAREchild_record_exception EXCEPTION 将异常名称与错误代码关联使用PRAGMA EXCEPTION_INT伪指令将自定义的异常名称与未命名的系统异常的错误代码关联起来。 PRAGMA EXCEPTION_INIT(child_record_exception, -2292); 在异常处理部分捕获异常 在PL/SQL块的异常处理部分使用WHEN关键字捕获自定义的异常名称并执行相应的处理逻辑。 BEGIN-- 执行可能导致异常的操作例如删除具有子记录的父表记录DELETE FROM parent_table WHERE id 1; EXCEPTIONWHEN child_record_exception THENDBMS_OUTPUT.PUT_LINE(无法删除父记录因为存在子记录。); END; 完整示例 DECLAREchild_record_exception EXCEPTION;PRAGMA EXCEPTION_INIT(child_record_exception, -2292); BEGIN-- 尝试删除一个具有子记录的父表记录DELETE FROM departments WHERE department_id 10; EXCEPTIONWHEN child_record_exception THENDBMS_OUTPUT.PUT_LINE(无法删除父记录因为存在子记录。);WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(发生其他异常 || SQLERRM); END; 3.使用场景  处理特定的系统错误Oracle数据库在运行时会产生各种系统错误这些错误通常以错误代码的形式出现而没有与之直接对应的异常名。例如当尝试删除一个具有子记录的父表记录时Oracle会抛出错误代码为-2292的系统错误。为了处理这种特定的系统错误可以使用未命名的系统异常。 增强代码的可读性和可维护性通过为未命名的系统异常定义一个明确的异常名称并使用PRAGMA EXCEPTION_INIT伪指令将其与错误代码关联起来可以使代码更加清晰易懂。这样在异常处理部分就可以直接使用自定义的异常名称而不需要记住复杂的错误代码。 实现更细粒度的异常处理在PL/SQL中可以使用WHEN OTHERS子句来捕获所有未捕获的异常。然而这种方式过于笼统可能无法准确地定位问题。通过为特定的系统错误定义未命名的系统异常可以实现更细粒度的异常处理从而更好地定位问题并采取适当的解决措施。 四、未命名的程序员自定义的异常 1.概述 RAISE_APPLICATION_ERROR 在 Oracle PL/SQL 中用于引发用户自定义的异常。它主要用于在应用程序中主动抛出自定义的错误代码和错误消息以便更好地处理异常情RAISE_APPLICATION_ERROR 引发的是用户自定义的异常。 这种异常不是由 Oracle 系统自动抛出的而是由开发人员根据业务需求在 PL/SQL 代码中显式抛出的。 2.作用 提供详细的错误信息RAISE_APPLICATION_ERROR 允许开发人员自定义错误代码和错误消息。这样当异常被抛出时调用程序可以接收到更详细、更有意义的错误信息而不是仅仅依赖于 Oracle 的标准错误消息。 增强错误处理灵活性通过引发自定义异常开发人员可以更灵活地控制错误处理流程。例如可以在不同的业务逻辑分支中抛出不同的异常以便调用程序根据异常类型采取相应的处理措施。 提高程序的可维护性使用 RAISE_APPLICATION_ERROR 可以将错误处理逻辑与业务逻辑分离使得程序更加清晰易读。同时自定义的异常处理机制也便于后续的代码维护和升级。 3. 使用方法及示例 基本语法 RAISE_APPLICATION_ERROR(error_number,error_message [, kee_error]); error_number自定义的错误代码必须是一个介于 -20000 和 -20999 之间的整数。这个范围内的错误代码不会与 Oracle 的保留错误代码冲突。 error_message自定义的错误消息是一个字符串。该消息的长度不应超过 2048 个字符。它将被传递给调用程序以便调用程序了解异常的具体原因。 keep_errors可选这是一个布尔值参数用于指示是否将当前的错误堆栈信息包含在异常中。在 Oracle 12c 及更高版本中引入。如果设置为 FALSE默认值则当前的错误信息会替换已有的错误堆栈。如果设置为 TRUE则当前的错误信息会被添加到已有的错误堆栈中。 使用示例 假设我们有一个存储过程用于检查员工的薪水是否低于某个最低值。如果薪水低于最低值则使用 RAISE_APPLICATION_ERROR 抛出异常 CREATE OR REPLACE PROCEDURE check_salary (p_emp_id IN NUMBER, p_min_salary IN NUMBER) ISv_salary NUMBER; BEGIN-- 查询员工薪水SELECT salary INTO v_salary FROM employees WHERE employee_id p_emp_id;-- 检查薪水是否低于最低值IF v_salary p_min_salary THEN-- 抛出自定义异常RAISE_APPLICATION_ERROR(-20001, Employee salary is below the minimum required.);END IF;EXCEPTIONWHEN NO_DATA_FOUND THEN-- 处理未找到员工数据的情况RAISE_APPLICATION_ERROR(-20002, Employee ID not found.); END; 未命名的程序员自定义异常与程序员定义异常的区别  1.声明与抛出 自定义异常需要先声明然后才能抛出。声明是在 PL/SQL 块的声明部分进行的而抛出是在执行部分进行的。RAISE_APPLICATION_ERROR 则不需要事先声明异常它直接在执行部分抛出自定义的错误代码和消息。 2.错误代码和信息 自定义异常本身不包含错误代码和消息这些需要在抛出异常时通过其他方式如注释或文档进行说明。RAISE_APPLICATION_ERROR 则直接包含了错误代码和消息使得异常信息更加完整和直观。 3.使用场景  自定义异常更适合用于处理那些与 Oracle 系统错误无关的业务逻辑错误例如数据验证失败、业务规则违反等。RAISE_APPLICATION_ERROR 则更适合用于处理那些需要自定义错误代码和消息的异常情况例如当应用程序需要向用户显示特定的错误消息时。
http://www.w-s-a.com/news/503963/

相关文章:

  • 电商网站开发技术与维护重庆建筑工程交易信息网
  • 人和马做的网站线上营销推广方式
  • 青海教育厅门户网站有赞商城
  • 网站建设多语种自动翻译插件wordpress谷歌翻译插件
  • 泰安高级网站建设推广wordpress教程 好看
  • 我自己的网站怎么做关键词优化泰安网站建设dxkjw
  • 平面设计做画册用网站泰州seo平台
  • 申请一个域名后怎么做网站evernote wordpress
  • 网站左侧导航栏设计网站开发后台数据怎么来
  • 临西做网站报价网站建设需要写语句吗
  • 建设网站网站首页购物网站开发代码
  • 淘宝客怎么建立网站网站360优化
  • 安徽建海建设工程有限公司网站网站空间和域名价格
  • 农产品网站建设策划哪里有做枪网站的
  • 更改各网站企业信息怎么做张家港企业网站制作
  • 郑州网站建设咨询银川做网站哪家好
  • 微信网站 微信支付合肥seo排名收费
  • 织梦做的网站如何上线广东省广州市番禺区南村镇
  • 网站设计的导航栏怎么做太原有网站工程公司吗
  • 苏州虎丘区建设局网站如何在一个数据库做两个网站
  • 淘宝天猫优惠券网站建设费用腾讯邮箱企业邮箱登录
  • 深圳福田做网站公司海航科技网站建设
  • 网站降权查询wordpress更换文章背景色
  • 大型电商网站开发金融企业网站建设公司
  • 成都营销型网站建设价格化妆品品牌推广方案
  • 深圳公司手机网站制作苏州网站推广哪家好
  • 网站建设开发方式包括购买学校网站建设费计入什么科目
  • 做简单网站的框架图中小微企业查询平台
  • 哪些网站可以免费做产品推广建设建设部网站
  • 网站开发销售怎么做django做网站