Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中异常的种类

Java中异常的种类

作者头像
用户7886150
修改于 2021-04-06 02:16:45
修改于 2021-04-06 02:16:45
1.1K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java中的异常处理

Java异常处理介绍 

1.1  什么是异常 

                    在程序运行过程中发生不正常的情况或不能够正常运行的情况就是异常。 

JAVA异常分为2类 

2.1错误: Error 

就是指在程序运行过程中发生非常严重的错误,导致程序无法继续正常运行,甚至崩溃或宕机,这种错误不是不可以恢复,但恢复需要很大 代价(比较重启系统,重启服务器) 。 

2.1.1  常见错误 

NoClassDefFoundError:在编译当前正在执行的类的时候,搜索类定义存在,但定义不能再被发现。 

StackOverflowError: 当堆栈溢出的发生是因为一个应用递归太深。 

VirtualMachineError:抛出表示java虚拟机坏了或已经耗尽了资源,它继续经营的必要。 

2.2异常: Exception 

  就是指在程序运行过程中发生不正常的情况,程序可以继续运行,程序本身也可以处理这种异常。 

1、Thorwable类 

Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常,这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。 

 2.Error(错误): 

一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。 

3.Exception: 

Exception类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件 

(1)SQLException:该异常提供关于数据库访问错误或其他错误的信息。 

(2)RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类 

(3)IOException:此类为异常的通用类,它是由失败的或中断的 I/O 操作生成的。 

 4、运行时异常和非运行时异常 

(1)运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。 

(2)非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。 

5、异常的捕获和处理 

Java异常的捕获和处理是一个不容易把握的事情,如果处理不当,不但会让程序代码的可读性大大降低,而且导致系统性能低下,甚至引发一些难以发现的错。 

Java异常处理涉及到五个关键字,分别是:try、catch、finally、throw、throws。下面将骤一介绍,通过认识这五个关键字,掌握基本异常处理知识。 

  (1)、try:它里面放置可能引发异常的代码 

  (2)、catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catch块。 

  (3)、finally:主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件),异常机制总是保证finally块总是被执行。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。 

java 常见的几种运行时异常RuntimeException 

常见的几种如下: 

NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。 IllegalArgumentException - 传递非法参数异常。ArithmeticException - 算术运算异常 ArrayStoreException - 向数组中存放与声明类型不兼容对象异常IndexOutOfBoundsException - 下标越界异常 NegativeArraySizeException - 创建一个大小为负数的数组错误异常NumberFormatException - 数字格式异常 SecurityException - 安全异常 UnsupportedOperationException - 不支持的操作异常

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java异常处理机制
本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框 架,阐述了异常处理的基本原则。并且作者提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常处理的框架来论述此思想。
用户7886150
2021/04/07
1.5K0
Java异常总结和Spring事务处理异常机制浅析
Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常,这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。
IT大咖说
2020/02/25
1.3K0
Java基础巩固——异常
  在Java程序运行时,常常会出现一些非正常的现象,这种情况称为运行错误。根据其性质可以分为错误和异常。
Janti
2018/08/01
4770
Java异常处理和设计
在程序设计中,进行异常处理是非常关键和重要的一部分。一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度。试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重影响到代码质量以及程序的性能。因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述Java异常机制最基础的知识,然后给出在进行Java异常处理设计时的几个建议。
Java团长
2018/08/07
6380
来了!令人头疼的 Java 异常面试总结
从结构图可以看出,所有异常均继承自 Throwable 类,它有两个重要的子类:Exception 和 Error ,各自又包含大量子类。
村雨遥
2021/07/07
6510
Java Exception
异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。 Java异常类层次结构图:
conanma
2021/12/06
8840
Java基础——异常体系
在Java中,异常对象都是派生于Throwable类的一个实例,Java的异常体系如下图所示:    所有的异常都是由Throwable继承而来,在下一层立即分解为两个分支,Error和Excepti
mukekeheart
2018/02/27
7290
Java基础——异常体系
Java基础:Java异常机制
异常是程序运行过程中出现的错误。Java 把异常当作对象来处理,把异常信息封装成了一个类,并定义一个基类java.lang.Throwable作为所有异常的超类
栗筝i
2022/12/02
3350
java异常知识
error通常是灾难性的致命错误,是无法控制和处理的,当出现这些异常时,Java虚拟机一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且程序中应该尽可能的去处理这些异常。
用户7043603
2022/02/23
5360
java异常处理
java把异常当作对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的超类
秋落雨微凉
2022/10/25
5010
java异常处理
Java基础系列6:深入理解Java异常体系
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。
说故事的五公子
2019/11/15
6070
Java异常处理扫盲贴
Throwable类是Java语言所有错误或异常的超类(两个直接子类:Error和Exception)
全菜工程师小辉
2019/08/16
5330
Java异常处理扫盲贴
Java异常面试问题
异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程。异常可能来自不同类型的情况,例如用户输入的错误数据,硬件故障,网络连接故障等。
用户1257393
2018/09/30
1.1K0
Java异常是Java提供的一种识别及响应错误的一致性机制
Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例。   Java异常机制用到的几个关键字:try、catch、finally、throw、throws。
用户7365393
2021/10/07
6680
Java的异常处理
1. Java 中异常分为哪些种类 按照异常需要处理的时机分为编译时异常(CheckedException)和运行时异常(RuntimeException)。只有java语言提供了Checked异常, Java 认为Checked异常都是可以被处理的异常,所以Java程序必须显式处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误无法编译。这体现了Java的设计哲学:没有完善错误处理的代码根本没有机会被执行。对Checked异常处理方法有两种: 1当前方法知道如何处理该异常,则用try…catch块来处理该异常。 2当前方法不知道如何处理,则在定义该方法是声明抛出该异常。 运行时异常只有当代码在运行时才发行的异常,编译时不需要try catch。Runtime如除数是0和数组下标越界等,其产生频繁,处理麻烦,若显示申明或者捕获将会对程序的可读性和运行效率影响很大。所以由系统自动检测并将它们交给缺省的异常处理程序。当然如果你有处理要求也可以显示捕获它们。
海拥
2021/08/23
7030
Java之异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,也就是在的程序中,不存在所谓的“异常”,只存在错误并且错误有时候是可以避免的。
用户5224393
2019/08/20
9800
Java之异常处理
Java异常面试题(2020最新版)
Java异常架构与异常关键字Java异常简介Java异常架构1. Throwable2. Error(错误)3. Exception(异常)运行时异常编译时异常
用户7886150
2020/12/18
8290
基础篇:深入解析JAVA异常
Java异常面试题: https://thinkwon.blog.csdn.net/article/details/104390689
潜行前行
2020/12/11
3990
基础篇:深入解析JAVA异常
Java的异常处理机制
java异常指在程序运行时可能出现的一些错误,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的错误条件。当条件生成时,错误将引发异常。
全栈程序员站长
2022/08/30
3890
Java的异常处理机制
Java异常Error和Exception的区别「建议收藏」
Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。
全栈程序员站长
2022/09/14
2K0
Java异常Error和Exception的区别「建议收藏」
相关推荐
Java异常处理机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档