异常等等等

什么是异常

  • 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求,你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序在跑着,内存或硬盘可能满了。等等。
  • 软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理。而不至于程序崩溃。
  • 异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。
  • 异常发生在程序运行期间,它影响正常的程序执行流程。
  • 简单分类
    • 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:
    • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
    • 运行时异常:运行时异常可能是被程序员避免的异常。与检查性异常相反,运行时异常可可以在编译时被忽略。
    • 错误:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,他们在编译也检查不到的。

异常体系结构

  • java把异常当作对象来处理,并定义一个基类Java.lang.Throwable作为所有异常的超类。
  • 在java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJ7aVWxd-1637721240840)(C:\Users\刘翰成\AppData\Local\Temp\WeChat Files\9f4770dfc8b2c105eab46e8c2cd3b6d.png)]
  • Error
    • Error类对象由Java虚拟机生成抛出,大多数错误与代码编写者所执行的操作无关。
    • Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryEeeor。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止;
    • 还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、连接错误(LinkageError)。这些错误是不可查的,因为他们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。。
  • Exception
    • 在Exception分支中有一个重要的子类RuntimeException(运行时异常)
      • ArrayIndexOutOfBoundsException(数组下标越界)
      • NullPointerException(空指针异常)
      • ArithmeticException(算数异常)
      • MissingResourceException(丢失资源)
      • ClassNotFoundException(找不到类)等异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。
    • 这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生;
    • Error和Exception的区别:Error通常是灾难性的致命错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

Java异常处理机制

  • 抛出异常
  • 捕获异常

处理异常

  • 异常处理五个关键词:try、catch、finally、throw、throws

自定义异常

总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Oracle 中,异常处理使用 PL/SQL 语言中的 EXCEPTION 子句。在程序执行过程中,如果发生异常,Oracle 会跳转到 EXCEPTION 子句,并且在其中执行相应的操作。 以下是一个简单的 Oracle 异常处理示例: ``` DECLARE num1 NUMBER := 10; num2 NUMBER := 0; result NUMBER; BEGIN result := num1 / num2; EXCEPTION WHEN ZERO_DIVIDE THEN DBMS_OUTPUT.PUT_LINE('Error: Divide by zero'); END; ``` 在上面的示例中,我们尝试将 num1 除以 num2,由于 num2 的值为零,会引发 ZERO_DIVIDE 异常。当异常发生时,程序会跳转到 EXCEPTION 子句,并输出错误信息。 除了 ZERO_DIVIDE,Oracle 还提供了许多其他的异常类型,例如 NO_DATA_FOUND、TOO_MANY_ROWS、INVALID_CURSOR 等等。我们可以根据需要在 EXCEPTION 子句中捕获这些异常,并执行相应的操作。 ### 回答2: Oracle 异常处理是指在数据库操作过程中,当发生异常情况时,针对这些异常情况进行处理的一种机制。异常处理可以帮助应用程序识别和解决潜在的错误,确保数据库的操作正常进行。 首先,Oracle提供了一套完整的异常处理机制,使得开发人员可以在发生异常时进行捕获和处理。开发人员可以利用`BEGIN...EXCEPTION...END`语句块来捕获和处理异常。这样,发生异常时可以进行相应的处理,例如回滚事务、记录日志、发送通知等,以确保数据的一致性和可靠性。 其次,Oracle提供了丰富的内置异常,可以根据不同的异常类型进行相应的处理。例如,`NO_DATA_FOUND`异常表示未找到满足条件的数据,开发人员可以在捕获该异常时进行特定的处理,如给用户提示没有符合条件的记录,或者进行相应的默认操作。 另外,开发人员还可以自定义异常,以满足具体业务需求。自定义异常可以通过`RAISE`语句抛出,在异常处理时可以根据自定义异常类型进行相应的处理。 此外,Oracle还提供了异常处理器,可以通过`WHEN`子句来指定特定异常的处理逻辑。开发人员可以在异常处理器中定义特定的操作,比如记录日志、恢复操作、重新尝试等。 总之,Oracle异常处理是保障数据库操作正常进行的重要机制。通过异常处理,开发人员可以及时捕获和处理异常,从而确保数据操作的稳定性和可靠性。 ### 回答3: Oracle 异常处理是指在使用 Oracle 数据库时,对于可能出现的错误和异常情况进行处理的过程。在处理异常时,可以使用以下几种方式: 1. 异常处理块(Exception Handling Block):使用 BEGIN 和 END 关键字包围的一组语句,用于捕获和处理可能发生的异常。在异常处理块中,可以使用 EXCEPTION 关键字来指定要处理的异常类型,并使用 WHEN 子句来定义异常处理逻辑。 2. 抛出异常(RAISE):当程序出现错误或异常时,可以使用 RAISE 关键字抛出一个异常。抛出异常后,可以在上层代码中捕获并进行处理。 3. 自定义异常(User-Defined Exceptions):除了系统定义的异常类型外,Oracle 还允许用户自定义异常。通过定义自己的异常类型,可以更好地表示程序运行中可能出现的特定异常情况,并定义针对这些异常的处理逻辑。 4. 异常处理函数和过程(Exception Handling Functions and Procedures):为了方便异常处理,Oracle 提供了一些内建的函数和过程。其中,常用的函数包括 SQLCODE 和 SQLERRM,用于获取最近一次 SQL 语句执行的错误码和错误信息。 5. 异常处理优先级(Exception Handling Propagation):当一个异常发生时,Oracle 会自动查找异常处理块,并按照特定的优先级顺序依次匹配和执行相应的处理逻辑。优先级从最具体的异常类型到最一般的异常类型依次递减。 通过合理地使用异常处理机制,可以使程序在发生错误或异常时能够正常运行,并提供相应的错误信息。同时,异常处理还可以避免因为错误的发生而中断程序的执行,提高程序的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值