异常



异常:java程序 在运行时期发生的不正常的情况
 
java就按照面向对象的思想对不正常情况进行描述和对象的封装

Throwable
问题分两种:
     Exception:jvm发生。并告诉给使用者,可以进行针对性的处理 
     Error: 由系统底层发生的,修改代码解决
异常的处理:

两种:
 1,遇到问题不进行具体的处理,而是继续抛给调用者。
    其实就是在函数上通过throws关键字声明异常,告诉调用者处理
 2, 针对性的处理方式:捕获
try{
    //有可能发生异常的代码

catch(异常类 变量)

  //这是真正的捕获,处理异常的代码

finally{
 //一定会被执行的代码

在定义功能时,需要在功能上对有可能发生的问题进行声明,
声明问题需要使用关键字 throws 异常类,声明目地是让调用者可以进行处理

throws Exception //声明异常
throw   new 函数()     //抛出异常

throw和throws有什么区别?
1,位置不同。
 throws用在函数上,后面跟的是异常类,可以跟多个。
 throw用在函数内,后面跟的是异常对象
2,功能不同
 throws用来声明异常,让调用者只知道该功能有可能出现的问题,并由
  调用者可以给出预先的处理方式。
throw抛出具体的问题对象。执行到throw功能就已经结束了,跳转到调用者,并将具体的问题对象也抛给调用者。

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

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

异常的原则:
1,功能内部有异常throw抛出,功能上一定要throws声明
  内部抛什么,功能就声明什么
 声明的目地就是为了让调用者处理,如果调用者不处理,编译失败

 2,特殊情况:
   当函数内通过throw抛出了RuntimeException及其子类的异常对象时,函数上可以
   不用throws声明。
不声明的目地就是不用调用者调用,让调用者的程序停止,要对代码进行修改。

Exception分两种:
  1,编译时会被检测的异常。
 2,运行时异常(编译时不检测)RuntimeException

异常:其实就是将问题封装成对象,并抛个调用者
    如果声明了,就需要调用者处理(继续声明or捕获)
什么时候声明,什么时候捕获?
功能内部可以解决,就捕获,不能解决,或者解决了还必须告诉给调用者问题,这时就应该声明


finally作用是:无论是否有异常发生,都要对资源进行释放。
 资源释放动作就定义在finally代码块中。

覆盖时:
子类方法覆盖父类方法只能抛出父类方法异常或者该异常的子类,
如果父类方法抛出多个异常,子类只抛出父类异常的子类
原则:就是子类的异常必须在父类的异常处理控制中

注意:有一种情况,只能try 不能throws
 被覆盖的方法没有抛出异常,
那么子类在覆盖时,子类方法中发生了异常,就只能try无法throws声明。

class AException extends Exception()
{
  super();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值