异常

8.1 异常概述:

所谓异常,就是程序出现了不正常的情况

顶级:Throwable

次级:Error、Exception

三级: RuntimeException、非RuntimeException

Error严重问题,不需要处理;Exception为异常类,程序本身可以处理

RuntimeException,编译期不检查,出问题后修改代码

非RuntimeException,编译期就需要处理,不能通过编译执行程序

JVM对异常默认处理方法:

  • 把异常的名称、异常原因及异常出现位置等信息输出在控制台
  • 程序停止执行

8.2 异常处理:

  • try...catch...

  • throws

e.printStackTrace();不打断程序后续执行的情况下输出错误名称、原因、位置等信息

编译时异常,通过throws将异常抛出,谁调用谁就通过try..catch..方法来处理问题

8.3 自定义异常:

定义一个继承自Exception的类即可成为异常体系的一员

使用一个类定义异常,继承自Exception(定义无参/带参初始化方法)

另外一个类使用到定义的异常方法,throws ScoreException

最后测试类调用方法,针对异常进行try...catch...处理

throws和throw区别:

  • throws用在方法声明后面,跟的是类名;throw用在方法体内,跟的是异常对象名
  • throws表示抛出异常,由该方法调用者来处理;throw表示抛出异常,由方法体内语句处理
  • throws表示出现异常的可能性;throw一定抛出了某种异常