java异常处理

异常的处理过程,抓抛模型
过程一:抛,程序在正常执行的过程中,一旦出现异常,就会在异常代码出生成一个异常类的对象,并将此对象抛出 ,
一旦抛出对象后,其后面的代码不再执行
过程二:可以理解为异常的处理方式

try catch finally
try{可能出现异常的代码}
catch{异常类型1  变量名1}
catch{异常类型2  变量名2}
catch{异常类型2  变量名2}
.....
finally{一定会执行的代码 }
1.使用try将可能出现的代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常的对象,根据对象的类型,在catch中进行匹配
 2.一旦try中的异常对象匹配到一个catch时,就进入catch中进行异常的处理,一旦处理完成,就退出当前的try catch finclly结构,继续执行其后的代码
 3.catch中的异常处理类型如果满足子父类关系,则要求子类一定要在父类前面声明
 4.catch中的异常处理类型如果满足子父类关系,则要求子类父类前后无所谓
 5.常用的异常处理的方式:1.String getmessa()  2.printStackTrace()
 6.在try中声明的变量,出了try结构后就不能在被调用
 7.finally是可以选择的
 8. 像数据库,输入输出流,网络编程Socket等资源,JVM是不能自动回收的,需要我们进行手动的释放,此时的资源释放,就需要声明在finally中
 9.try catch finally结构可以相互嵌套
  体会1:我们使用try catch finally结构处理异常,是使得程序在编译是不再报错,但是在运行的时刻还是可能报错,相当于我们使用这个结构是将一个编译时可能出现的异常,延迟到运行时再出现
  体会2:开发中,由于运行时异常比较常见,所以我们一般不专门针对其进行try catch finally处理,针对编译型异常,我们一般要考虑异常的处理
 异常的处理方式二:throw+异常类型
 1.throw+异常类型写在方法的声明,指明此方法执行时,可能会抛出的异常类型
一旦方法体执行,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满族throws后异常类型后,就会被抛出,异常代码后的代码,不会被执行
2,体会:try catch finally :真正的将异常处理了,throws的方式只是将异常抛给了方法的调用者,并没有真正的将异常处理

方法重写的规则之一:

子类重写的方法抛出的异常不能大于父类被重写的方法抛出的异常,相当于我罩不住你,一一般儿子的错误小于父亲的错误,子不教父之过

开发过程中怎么选择try catch finally还是throws方法 

如果父类被重写的方法中没有用throws抛出异常,则子类重写的方法也不能使用throws,意味着如果子类重写的方法中有异常,必须使用trycatch方法处理,即父类向上抛出问题,子类才可以使用throws

执行的方法a中,有进行了另外的几个方法,这几个方法是递进关系,我们建议这几个方法使用throws的方式进行处理。而执行的方法a可以使用trycatch的方式进行异常处理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值