Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。
Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception:表示可恢复的例外,这是可捕捉到的。
Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。
异常处理的目标之一就是为了把程序从异常中恢复出来。
分享到:
相关推荐
总结来说,Java异常处理机制提供了一种结构化的方法来处理程序运行时的错误,通过try-catch-finally结构捕获和处理异常,同时,利用断言进行内部逻辑验证,以及日志记录来跟踪程序行为。这样的机制增强了代码的健壮...
处理普通异常时,应配合`catch`使用。`finally`块虽然不是必需的,但用于确保关键操作(如资源释放)的执行。 理解并熟练运用这些Java异常处理的知识点对于解决实际编程问题和通过面试至关重要。在编写代码时,合理...
Error类代表严重的错误,通常由Java运行时系统抛出,程序不应试图捕获这些错误。Exception是程序中可以使用try-catch语句捕获的异常,它又分为两大类:普通异常(Exception)和运行时异常(RuntimeException)。普通...
本文对类文件之中java程序运行阶段的异常进行了分析。其可以通过无java源代码文件的条件之下,直接...异常跟普通的警告等有一定的区别。当应用程序发生异常时,会自动进行错误源代码的跟踪并加以提示,进而提升技术人员...
// 调用regist方法,传入负数 } } 情况2 2、手动抛普通的异常 如果需要抛出一个非运行时异常,比如自定义异常,我们需要创建一个继承自Exception的类,然后在适当的地方抛出这个异常。例如:public class ...
Java中的异常处理机制是Java程序设计的关键特性之一,它提供了对程序运行时可能出现错误的优雅处理方式。当程序违反了Java的语义规则,比如数组下标越界、空指针引用等,Java虚拟机(JVM)会抛出异常。这些异常...
【标题】"java普通计算器"涉及的Java编程与GUI应用开发 在Java编程领域,创建一个普通计算器是一项基础但重要的练习,它可以帮助开发者熟悉面向对象编程、事件处理以及图形用户界面(GUI)的设计。本项目使用了...
异常分为检查异常(Exception)和运行时异常(RuntimeException)。异常类均继承自Throwable。try块中可能抛出异常的代码被包围,catch块处理特定类型的异常,finally块确保无论是否发生异常都会执行的代码。程序员...
`NullPointerException` 是 Java 中最常见的一种运行时异常,通常发生在程序尝试访问一个尚未初始化(即为 `null`)的对象或引用时。例如,当你试图调用一个对象的方法或访问其属性时,如果没有正确初始化该对象,则...
Java编程语言是面向对象的,其异常处理机制、对象生命周期管理、类的构造与方法、代码块、枚举、注解等概念都是开发者必须掌握的关键知识点。以下是对这些概念的详细解析: 1. **hashCode**: 在Java中,`hashCode()...
本文将深入探讨Java运行环境(JRE)的相关概念,包括JRE与JDK的关系、JRE内部结构解析以及如何在多JRE环境下进行配置等内容。 #### 二、JRE与JDK的关系 1. **定义区分**: - **JRE (Java Runtime Environment)**...
Java异常处理是编程中不可或缺的一部分,它用于处理程序运行时可能出现的错误。异常是程序在执行期间遇到的问题,可能导致程序终止。Java中的异常分为两类:错误(Error)和违例(Exception)。 错误(Error)是JVM...
- Java中的异常分为运行时异常和检查性异常,运行时异常不需要在代码中显式处理,而检查性异常需要。 - error是系统错误,而exception是程序运行过程中可以恢复的异常情况。 - Java异常处理机制通过try、catch、...
Java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6. Hibernate 中,不看数据库,不看 XML 文件,不看查询语句,怎么样能知道表结构? 可以看与 XML 文件...
### Java中Error与Exception的区别 #### 一、概述 在Java编程中,异常处理机制是一项重要的功能,它帮助开发者管理程序执行过程中可能出现的各种错误情况。Java中的异常处理机制主要涉及两大类异常对象:`Error` ...
6. **异常处理**:网络爬虫在运行过程中可能会遇到各种问题,如网络连接失败、超时、404错误等,因此需要编写良好的异常处理代码,确保程序的健壮性。 7. **节流与反反爬策略**:为了避免被目标网站封禁,需要设置...
Java异常处理机制是Java编程中不可或缺的一部分,它用于处理程序运行时出现的错误和异常情况。本文将深入探讨Java异常处理的关键概念、原则和最佳实践。 首先,Java异常处理涉及五个核心关键字:try、catch、...
异常处理是Java中的一个重要组成部分,教程会详细解释如何使用try-catch-finally语句来捕获和处理运行时错误。此外,还会讲解文件输入/输出(I/O)操作,这对于读写文件、实现数据持久化至关重要。 容器和集合框架...
- Error类和Exception类分别表示严重错误和普通异常。 **8.8 一些未检查的异常** - 如`NullPointerException`、`IndexOutOfBoundsException`等。 **8.9 写你自己的异常** - 可以通过继承Exception类或其子类来...
Java异常处理是编程实践中至关重要的一个方面,它确保了程序的稳定性和健壮性。...在编写和维护Java应用时,对异常处理保持关注和优化,将有助于避免潜在的运行时问题,提升程序的可靠性和用户体验。