目录
前言
异常分类
Error和Exception类
异常处理
首页 Java java教程 java中异常及异常处理的内容讲解(图文)

java中异常及异常处理的内容讲解(图文)

Sep 18, 2018 pm 05:13 PM
catch java throw 异常 异常处理

本篇文章给大家带来的内容是关于java中异常及异常处理的内容讲解(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前言

  1. 概述:异常就是java程序在运行过程中出现的错误。

  2. 异常发生时如何处理,java提供了解决办法:异常处理机制。

  3. java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw语句手动抛出。

  4. 只要在java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE会试图寻找异常处理程序来处理异常。

  5. JDK中内建类一些常见的异常类,我们也可以自定义异常。

  6. Throwable类是java异常类型的顶层父类,一个对象只有是Throwable类的直接或间接实例,他才是一个异常对象,才能被异常处理机制识别。

异常分类

检查性异常:

(1)最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预测的。
(2)例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单的忽略。

运行时异常:

(1)运行时异常是可能被程序员避免的异常。
(2)与检查性异常相反,运行时异常可以在编译时被忽略。

错误:

(1)错误不是异常,而是脱离程序员控制的问题。
(2)错误在代码中通常被忽略。
(3)例如,当栈溢出时,一个错误就发生了,它们在编译时也是检查不到的。

异常分类图解:

1052220856-5b9a1386a2c23_articlex.png

Error和Exception类

java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。

Throwable又派生出Error类和Exception类。

Error类:

(1)Error类以及他的子类的实例,代表了JVM本身的错误。
(2)错误不能被程序员通过代码处理,Error很少出现。
(3)因此,程序员应该关注Exception为父类的分支下的各种异常类

Exception类:

(1)Exception及他的子类,代表程序运行时发送的各种不期望发生的事件。
(2)可以被java异常处理机制使用,是异常处理的核心。

异常处理

异常处理机制能让程序在发生异常时,按照代码预先设定的异常处理逻辑,针对性的处理异常,让程序尽最大可能的恢复正常并继续执行,且保持代码的清晰。

java中,异常处理的任务就是将执行控制流从异常发生的地方转移到能够处理这种异常的地方去。

在编写代码处理异常时,对于检查异常,有两种处理方式:

(1)使用try...catch...finally语句块处理
(2)在函数签名中使用throws声明交给函数调用者caller去解决

try...catch...finally语句块:

(1)try块中放可能发生异常的代码;
(2)如果执行完try并且不发生异常,则接着去执行finally块代码以及finally之后的代码;
(3)如果执行try中代码发生异常,就会尝试匹配catch块;
(4)每一个catch块用于处理一个异常;
(5)异常匹配是按照catch块的顺序从上往下寻找的,只有第一个会匹配到的catch块会被执行。
(6)try块中的局部变量和catch块中的局部变量,以及finally中的局部变量,它们之间不可以共享使用;
(7)finally块不管异常是否发生,只要对应的try块执行了,它一定会执行。
(8)finally块通常用来做资源释放操作,关闭文件或者关闭数据库等操作。

throws/throw:

(1)如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。
(2)throws 关键字放在方法签名的尾部。
(3)throws仅仅是将函数中可能出现的异常向调用者声明,而自己并不处理异常。
(4)采用这种异常处理的原因可能是:方法本身不知道如何处理这种异常,或者说让调用者处理更好,调用者需要为可能发生的异常负责。
(5)也可以使用 throw 关键字手动抛出一个异常,无论它是新实例化的还是刚捕获到的。
(6)throw语句的后面必须是一个异常对象。

以上是java中异常及异常处理的内容讲解(图文)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java 中的完美数 Java 中的完美数 Aug 30, 2024 pm 04:28 PM

Java 完美数指南。这里我们讨论定义,如何在 Java 中检查完美数?,示例和代码实现。

Java 中的随机数生成器 Java 中的随机数生成器 Aug 30, 2024 pm 04:27 PM

Java 随机数生成器指南。在这里,我们通过示例讨论 Java 中的函数,并通过示例讨论两个不同的生成器。

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java 版 Weka 指南。这里我们通过示例讨论简介、如何使用weka java、平台类型和优点。

Java 中的史密斯数 Java 中的史密斯数 Aug 30, 2024 pm 04:28 PM

Java 史密斯数指南。这里我们讨论定义,如何在Java中检查史密斯号?带有代码实现的示例。

Java Spring 面试题 Java Spring 面试题 Aug 30, 2024 pm 04:29 PM

在本文中,我们保留了最常被问到的 Java Spring 面试问题及其详细答案。这样你就可以顺利通过面试。

您如何在PHP中有效处理异常(尝试,捕捉,最后,投掷)? 您如何在PHP中有效处理异常(尝试,捕捉,最后,投掷)? Apr 05, 2025 am 12:03 AM

在PHP中,异常处理通过try,catch,finally,和throw关键字实现。1)try块包围可能抛出异常的代码;2)catch块处理异常;3)finally块确保代码始终执行;4)throw用于手动抛出异常。这些机制帮助提升代码的健壮性和可维护性。

突破或从Java 8流返回? 突破或从Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

Java 中的时间戳至今 Java 中的时间戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的时间戳到日期指南。这里我们还结合示例讨论了介绍以及如何在java中将时间戳转换为日期。

See all articles