Java基础之006-异常

本文深入讲解Java中的异常处理机制,包括异常的体系结构、异常处理流程、自定义异常的创建方法,以及异常处理中常用的方法如try、catch、finally等的使用技巧。

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

Java基础之006-异常

                                       35岁学习Java

 

1.1 异常的体系

throwable

     --Error
         通常出现重大问题如:运行的类不存在或者内存溢出等。
        不编写针对代码对其处理
   --Exception
        在运行时运行出现的一起情况,可以通过try catch finally

 

1.2 Exception和Error的子类名都是以父类名作为后缀。

         Java在设计异常体系时,将容易出现的情况都封装成了对象。


1.3 Throwable中的方法

1)      getMessage()

获取异常信息,返回字符串。

2)      toString()

获取异常类名和异常信息,返回字符串。

3)      printStackTrace()

获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

4)      printStackTrace(PrintStream s)

通常用该方法将异常内容保存在日志文件中,以便查阅。

 

1.4 throws和throw

1)     throws用于标识函数暴露出的异常。

2)     throw用于抛出异常对象。

3)     throws与throw的区别:

thorws用在函数上,后面跟异常类名。

throw用在函数内,后面跟异常对象。

     说明:定义功能方法时,需要把出现的问题暴露出来让调用者去处理。那么就通过throws在函数上标识。

在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。

 

1.5 异常处理

try

{

         需要检测的代码;

}

catch(异常类 变量)

{

         异常处理代码;

}

finally

{

         一定会执行的代码;     

}

Finally代码块只有一种情况不会被执行。就是在之前执行了System.exit(0)。

 

处理过程:

         中检测到异常会将异常对象传递给catch,catch捕获到异常进行处理。

         Finally里通常用来关闭资源。比如:数据库资源,IO资源等。

         需要注意:try是一个独立的代码块,在其中定义的变量只在该变量块中有效。

         如果在try以外继续使用,需要在try建立引用。在try对其进行初始化。IO,Socket就会遇到。

 

1.6 自定义异常

1)     自定义类继承Exception或者其子类。

2)     通过构造函数定义异常信息。

例:

Class DemoException extendsException

{

         DemoException(Stringmessage)

         {

              super(message);

         }

}

3)     通过throw将自定义异常抛出。

 

1.7 异常细节

1)     RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。

2)     一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类。

3)     如果父类抛出多个异常,那么重写(覆盖)方法必须抛出那些异常的一个子集,不能抛出新的异常。

4)     简单说:子类覆盖父类只能抛出父类的异常或者子类或者子集。

注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛,就只能try.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敦格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值