`
xudongcsharp
  • 浏览: 477298 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

异常介绍

    博客分类:
  • Java
阅读更多

Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。
   Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception:表示可恢复的例外,这是可捕捉到的。
Java提供了两类主要的异常:runtime exception和checked exception。

checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常(ClassnotFoundException、SQLException)。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
    但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
    出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
    如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。

异常处理的目标之一就是为了把程序从异常中恢复出来


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yakihappy/archive/2009/03/11/3979883.aspx

 

分享到:
评论

相关推荐

    中断与异常介绍

    总的来说,这篇名为“中断与异常介绍”的PPT文档将详细解析这两个概念,帮助读者掌握它们的基本原理、处理流程以及在实际应用中的角色。通过学习,无论是硬件工程师还是软件开发者,都能更好地理解和利用中断与异常...

    Java异常介绍及Spring Boot统一异常处理

    Spring Boot 提供了统一的异常处理机制,通过使用 @ControllerAdvice 和 @ExceptionHandler 注解,可以实现对控制器层、Service 层、Dao 层以及 Spring 系统内定义的部分异常的统一处理。 在 Spring Boot 中,可以...

    Python代码-异常介绍.py

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    oracle自定义异常

    #### 二、预定义异常介绍 - **DUP_VAL_ON_INDEX**:当试图插入一个重复键值到唯一索引或主键约束时触发。 - **NO_DATA_FOUND**:当执行查询操作时没有找到数据记录时触发。 - **TOO_MANY_ROWS**:当期望得到单条...

    09.你真的懂异常(Exception)吗.pdf

    一、异常介绍 异常,简而言之,就是在程序运行过程中出现的非正常情况。它们可以是由于技术原因(如数组越界、空引用等),或者是非技术原因(如用户输入无效数据、网络故障等)引起的。在C#中,异常被抽象为一种...

    c++异常处理机制详细介绍

    以下是对C++异常处理机制的详细介绍: 1. **异常处理概述**: - 异常是在程序运行过程中发生的不正常情况,如用户输入错误、资源不足或其他逻辑错误。这些异常如果没有被妥善处理,可能会导致程序崩溃。 - C++的...

    MonteCarlo.rar_Monte Carlo_剔除异常值_异常值_异常样本剔除_蒙特卡洛 异常

    本篇文章将详细介绍如何利用MATLAB编程语言,结合蒙特卡洛方法来剔除数据中的异常值。 首先,我们需要理解什么是异常值。异常值通常指的是与其他观测值明显偏离的数据点,可能是由于测量误差、记录错误或者真实存在...

    java异常详细介绍

    Java异常处理是Java编程中非常重要的一个概念,它关乎程序的稳定性和健壮性。在Java中,异常是程序运行时出现的不正常情况,可能是由于逻辑错误、资源不足或是外部条件不符合预期导致的。本篇文章将深入探讨Java异常...

    java异常处理详细介绍

    Java异常处理是Java编程中一个至关重要的概念,它确保了程序的稳定性和可靠性。异常是在程序执行期间发生的非正常情况,通常会导致程序中断。Java通过一套完善的异常处理机制来管理和恢复这些异常,使得程序员可以...

    软件设计(II)教学课件:Chapter13 Exception Handling.ppt

    13.1 异常介绍 异常是指在程序运行过程中发生的非正常情况,这些情况通常不是由于逻辑或语法错误导致,而是运行时的异常状态,如除以零、数组越界访问、内存耗尽等。当这些异常发生时,程序可能会非正常终止。为了...

    android开发,异常处理,捕获异常上传到bugly,捕获异常库module

    接下来,我们要介绍Bugly——这是一个由腾讯提供的移动应用错误监控平台。Bugly能够实时捕获应用运行时的异常,提供详细的错误堆栈信息,帮助开发者快速定位问题。为了将异常数据上传至Bugly,我们需要在项目中集成...

    C++ 异常处理机制以及介绍

    下面将详细介绍C++中的异常处理概念及其相关语法。 首先,异常是程序运行时可能出现的不正常情况,如标题和描述中提到的除以零、数组越界等。C++提供了两种状态来表示程序的运行情况:正常状态和异常状态。当异常...

    java异常 各种异常

    虽然提供的文件内容中没有明确的异常处理示例,但从文件中提取的部分内容可以看出其可能是在介绍如何配置Java环境变量。这部分内容与异常处理直接关联不大,但仍可从中学习如何正确配置Java环境,从而减少由于环境...

    异常类:自定义异常类

    本文将详细介绍如何在 Java 中创建自定义异常类,并通过一个示例来展示如何使用这些自定义异常。 #### 创建自定义异常类 自定义异常类是指开发者根据实际需求自定义的异常类型。在 Java 中,创建自定义异常类通常...

    Python 2.7 Tutorial 中文版.pdf

    介绍了如何使用`try-except`语句来处理运行时出现的异常。 #### 抛出异常 讲解了如何主动抛出异常,以实现特定的程序逻辑。 #### 用户自定义异常 指导读者如何定义自己的异常类。 #### 定义清理行为 说明了...

    异常值的类型及其处理方法

    《异常值的类型及其处理方法》这本书不仅详细介绍了异常值的基本概念、产生的原因及分类,还提供了丰富的处理策略和实用的算法案例,对于从事数据科学领域的研究人员和工程师来说是一本不可多得的参考书。

    python学习资料

    - **异常介绍**:解释异常的概念及其处理的重要性。 - **捕获异常**:介绍如何使用try-except语句来捕获并处理异常。 - **异常的传递**:讨论异常是如何在函数之间传递的。 - **抛出自定义异常**:指导如何定义自己...

    android全局异常捕获 exception_global

    下面将详细介绍如何在Android中实现全局异常捕获。 1. **使用Application类**: Android的`Application`类是每个应用程序的基类,可以在其中添加自定义逻辑。我们可以通过继承`Application`并重写`onCreate()`方法...

    Spring Cloud Gateway的全局异常处理

    通过本文介绍的自定义异常处理逻辑,可以有效解决Spring Cloud Gateway默认异常处理机制中存在的问题,使得异常信息更加符合业务需求。此外,这种方式也为开发者提供了一个良好的起点,可以根据具体项目需求进一步...

Global site tag (gtag.js) - Google Analytics