java学习------异常

异常,什么是异常?简单的说异常是一种处理机制。将用户所没有考虑到的错误进行处理。因为程序员无法保证一段代码永远不会出错。

java中异常通过5个关键字:try , catch , throw , throws , finally。其中,try关键字后紧跟一个花括号括起来的代码块(花括号不可省略)简称try块。它里面放置可能引发异常的代码。catch后对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块。多个catch块后还可以紧跟一个finally块,finally块用于回收在try块里打开的物理资源,异常机制会保证finally块总被执行。throw关键字主要在方法签名中使用,用于声明该方法可能抛出的异常,而throw用于抛出一个实际的异常,throw可以单独作为语句使用,抛出一个具体异常对象。

try{ 若执行代码出现异常 } catch(Exception e){异常处理部分} 异常处理完后,程序继续执行。catch()括号中为捕捉到的异常。异常类型不知道就写Exception。e.printStackTrace() 简单理解为打印异常信息。

*一段代码不能连着抛2个异常,因为第二个无法抛出,即使第二个抛出了,也是在第一个解决了的情况下。

*无法用逻辑判断的用异常方便。(异常的意义)

异常的处理方式有2种。①try{}catch(){}自己处理异常。②在方法后加throws 交给java虚拟机处理。

异常处理步骤:try{} catch(1){} catch(2){} ... finally{} 无论是否捕获异常,finally都会去执行。finally对所有异常进行统一的管理。一般finally是对内存回收等机制的管理。

异常分类:①、Error 系统错误。 ②、Exception 必须处理的异常。 ③、RuntimeException 可处理,也可不处理的异常。

自定义异常,throws new。。。 并继承Exception。

void f() throws A

{

}

*throws A表示调用f方法时,f方法可能会抛出A类异常,建议您调用f方法时最好对f方法可能抛出的A类异常进行捕捉。

*throws A不表示f方法一定会抛出A类异常,f方法可以不抛出异常。

*throws A不表示调用f方法时,必须对A类异常进行捕捉。假设A是RuntimeException子类异常,由于RuntimeException的子类异常可处理也可不处理,所以编译器允许调用f方法时,对f方法抛出的RuntimeException子类异常不进行处理。(但是,强烈建议,对throws出的所有异常进行处理,如果一个方法内部已经对A异常进行了处理,就不要在throws A了)

*先catch子类异常再catch父类异常

*catch与catch之间不能有其他代码。

*重写方法抛出异常范围不能大于被重写方法排除的异常范围。

异常的优点:①、强制程序员考虑程序的安全性和可控性。

②、有利于代码调试。

③、把错误处理代码从常规代码中分离出来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值