JavaSE内容整理六

异常

一、异常和错误的概念以及异常类的层次
异常和错误的区别
1.异常指的是运行过程中的不正常事件,可以被异常机制处理,程序能够继续运行下去;
2.错误不能够被处理,发生错误后,程序就终止,程序员需要修改源代码才能解决错误

异常类的层次
1.顶级父类是Throwable,有两个子类,分别是Error和Exception;
2.Exception又分为两大类,即运行时异常RuntimeException以及非运行时异常;
3.运行时异常又称为非检测异常,也就是编译期不检测,可以不处理也可以编译通过;
eg:空指针、数字转换异常、数组下标越界…
非运行时异常称为检测异常,即编译期会检测,不处理就会发生编译错误;eg:sql异常

注意:
如果String s=“”;调用s.length()会发生空指针异常吗?不会,结果是0
如果String s=null;调用s.length()会发生空指针异常吗?会 报空指针异常

二、异常处理流程及语句
try{
//可能抛出异常的代码块;
}catch(异常类型 变量名){
//1.可以写任意需要对异常进行处理的代码;
//2.可以调用异常对象的方法,例如printStackTrace,查看异常发生的栈轨迹
}
三种情况
1.没发现异常,正常执行
2.发生异常,并处理
3.发生异常,没处理(异常类型匹配不成功)

注意:1.使用try-catch能保证程序发生异常的时候,能继续执行
2.catch可以写多个,catch语句的异常类型必须从子类到父类的顺序,否则编译错误;

finally{
不管什么情况,无论是否发生异常,一定被执行的代码块;除了finally前面有System.exit(0)退出虚拟机;
}
两种组合
1.try-finally
2.try-catch-finally
3.try-catch
4.必须有try,catch可以有1个或多个,finally最多1个,可以没有,不能有多个;
5.如果出现return执行顺序:try–catch–finally-return
在这里插入图片描述

抛出异常其实就是创建了一个异常对象,然后用throw关键字交给异常处理机制去处理;
throw 异常对象;就是throw new 异常类的构造方法();
例如:
throw new Exception();
或者
catch(Exception e){
throw e;
}

throws:方法处声明异常
注意:1.谁调用,谁就处理异常
2.throws用在方法声明处,声明该方法可能发生的异常类型;
3.throws后可以声明多种类型,用逗号隔开即可;
4.抽象方法也可以使用throws声明该方法可能抛出的异常类型;

throw与throws的区别
throw用在方法体中,用来抛出异常对象给异常处理机制;
throws用户方法声明处,用来声明该方法可能抛出的异常类型;
在这里插入图片描述
三、自定义异常
自定义异常类:1.继承父类异常2.重载构造方法,调用父类的构造方法
在这里插入图片描述
使用自定义异常类
在这里插入图片描述
四、断言(了解)
assert <布尔表达式>
assert <布尔表达式> : <错误信息>
1.当布尔表达式的值是true时,忽略assert;
2.当布尔表达式的值是false时,发生AssertionError错误,程序中断;如果用第二种形式,同时显示错误信息;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值