Java异常(Exception)

本文深入解析Java异常处理机制,涵盖异常的种类、处理方式及结构。从错误与异常的区别讲起,详细介绍Java如何捕捉和处理异常,包括try-catch-finally语句的使用,以及在方法覆盖时的异常处理原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、种类(两种)

2、Java异常处理机制

3、Java异常处理方式

catch代码块对产生的异常有三种处理方式

4、Java异常的结构及种类

常见的异常类型

方法覆盖时的异常处理


1、种类(两种)

1. 错误(Error): 由于硬件问题或者系统本身问题引起的,程序无法处理

2. 异常(Exception): 由于程序设计的不周全或者外部输入引起的问题,程序可以处理。

2、Java异常处理机制

1. Java程序如果在运行时产生了异常,就会将这些异常信息封装在一个对象中,然后传递给jre,--称之为捕捉异常

2. Jre接收到该异常对象之后,就会分析该异常的种类并查找能够处理这一异常的程序代码,处理完了之后程序继续往下运行,--称之为处理异常

3. Jre如果找不到处理该异常的程序代码,jre就会终止运行,相应的应用程序就会退出运行。

3、Java异常处理方式

try{

          存放产生异常的程序代码//每次只能捕捉一个异常

}catch(XxxException e){

         1~n个,每个catch块只能处理一个异常

          存放处理异常的程序代码(处理异常是指获得异常产生的原因及异常信息)

}finally{

          永远被执行

           存放释放对象或者关闭资源的程序代码

           只能放在最后面

}

注意:假设我们的代码中使用的try catch进行异常的捕获,如果在catch中没有throw抛出异常,在try catch之外的代码依旧是可以正常运行的

 

 

catch代码块对产生的异常有三种处理方式

获得异常的原因:通过异常对象的e.getMessage()方法

将异常信息写入到日志文件中 logger.error()方法

将异常信息显示给用户查看

        throws: 在方法声明中表明方法在运行时可能会产生异常以及异常的类别, 由方法的调用者进行处理

        throw:抛出一个具体的异常对象给jvm(后面的话就必须用异常处理)

4、Java异常的结构及种类

Exception: 所有异常处理类的父类

常见的异常类型

1、运行时异常:编译时可以通过, 但是在运行时会出错 RuntimeException,又称为未检验的异常

2、算术异常:ArithmeticException

3、类型转换异常:ClassCastException 对象转换成其他类类型时

4、数组越界异常:ArrayIndexOutOfBoundsException

5、空指针异常:NullPointerException 对空对象进行操作

      避免空指针异常:在对取得的对象或者数据进行操作之前先进行为空判断(可以先假设为空和不为空进行判断,判断完再进行操作)

6、IO异常(已检验异常):应用程序与外部设备的数据的读写异常(IOException),如果不对该异常进行处理,则编译无法通过,又称为已检验的异常

7、被操作的文件不存在:FileNotFoundException

8、读取文件内容异常:EOFException

9、寻找异常的源头:Throwable类的printstackTrace()

方法覆盖时的异常处理

    。如果父类方法没有申明抛出异常,子类覆盖方法只能增加抛出为检验的异常

    。子类覆盖方法申明抛出的异常必须是父类被覆盖方法抛出的异常的子类

    。子类覆盖方法声明抛出的异常只能是父类被覆盖方法抛出的异常的子集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值