6.14视频笔记之异常

异常

java程序在运行时期发生的不正常情况(问题)

java就按照面向对象的思想对不正常情况进行描述和对象的封装。

问题分2种:

Throwable:定义了对于问题的共性的功能

Error:由系统底层发生的,告诉jvm,jvm告诉使用者,不做针对性处理。直接修改代码。

Exception:jvm发生,并告诉给使用者。可以进行针对性的处理

总结:

运行时发生

符合面向对象,将问题描述并封装成对象


error和exception的区别

输出语句发生问题时,jvm就将这个已知的问题封装成了对象;
throw new ArrayIndexOutOfBoundsException(1);
将问题抛给调用者main函数。
main没有针对性的处理方式。
main就继续往外抛给调用者jvm,jvm就使用了默认的处理方式,
将问题的名称+信息+位置在控制台上显示出来,让调用者看到并结束程序。
throws 异常类,声明的目的:就是让调用者可以进行处理


异常的处理

两种:

1.遇到问题不进行具体的处理,而是继续抛给调用者
其实就是在函数上通过throws关键字声明异常,告诉调用者处理。

2.针对性的处理方式:捕获!

try
{
//有可能发生异常的代码
}
catch(异常类   变量)
{
  //这是真正的捕获,处理异常的代码
}
finally
{
  //一定会被执行的代码
}
System.out.println(e.getMessage());//异常信息
System.out.println(e.toString());//异常名称+异常信息
e.printStackTrace();//名字+信息+位置。jvm默认处理收到异常就是调用这个方法。

throw和throws有什么区别呢?

1.位置不同

throws用在函数上,后面跟的是异常类,可以跟多个

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

2.功能不同

throws用来声明异常,让调用者只知道该功能有可能出现的问题,并由调用者可以给出预先的处理方式

throw抛出具体问题对象。执行到throw功能就已经结束了。跳转到调用者。并将具体的问题对象也抛给调用者。

也就是说throw语句独立存在时,下面不要定义其他语句。因为执行不到。


异常体系的特殊情况:

Exception

|–Error

|–Exception

异常体系最大的特点就是体系中的类以及类产生的对象,都具备这可抛性,
可抛性的意思是可以被throws和throw所操作。


异常的原则:

1.功能内部有异常throw抛出,功能上一定要throws声明。

内部抛什么,功能上就声明什么

声明的目的就是为了让调用者处理,如果调用者不处理,编译失败

2.特殊情况:

当函数内通过throw抛出了RuntimeException及其子类的异常对象时,函数上可以

不用throws声明

不声明的目的就是不让调用者处理

让调用者的程序停止,要对代码进行修改


Exception分2种:

编译时会被检测的异常

运行时异常(编译时不检测)RuntimeException


异常:其实就将问题封装成对象,并抛给调用者

如果声明了,就需要调用者处理(继续声明or捕获)

什么时候声明,什么时候捕获?

功能内部可以解决,就捕获,不能解决,或者解决了还必须告诉调用者问题,这时就应该声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值