动力节点口口相传的Java黄埔军校
Java入门视频:Java中自定义异常
2019-09-03 来源:动力节点

timg (12).jpg


       异常分类

  异常体系分成:checked(编译)异常和runtime(运行)和异常。


  划分规则是,RuntimeException和其子类属于运行异常,异常除了运行异常,其他都是编译异常。


  1.1.运行异常(了解)


  runtime异常,顾名思义在编译时期不被检测,只有在运行时期才会被检查出来。


  运行异常可以不使用try...catch处理,但一旦出现异常就将由JVM处理(打印堆栈信息)。RuntimeException(运行时异常)通常是指因设计或实现方式不当而导致的问题。程序员小心谨慎是可以避免的异常。如:事先判断对象是否为null就可以避免NullPointerException异常,事先检查除数不为0就可以避免ArithmeticException异常。


  运行异常特点:


  在编译阶段,Java编译器检查不出来。一般的,程序可以不用使用try-catch和throws处理运行异常。


  1.2.编译异常(了解)


  编译被检查异常,顾名思义就是在编译时期就会被检测到的异常。除了RuntimeException以及子类以外,其他的Exception及其子类都是编译异常,有时候也称之为非runtime异常。


  特点:


  在编译阶段,Java编译器会检查出异常,也就说程序中一旦出现这类异常,要么使用try-catch语句捕获,要么使用throws语句声明抛出它,否则编译就不会通过。


  简而言之:程序要求必须处理编译异常,使用try-cathc或throws处理。


  1.3.自定义异常类(掌握)


  一个异常类只表示某一种特定的异常类型,在项目开发中,可能会出现特定的逻辑错误,此时开发者可以对这些错误进行封装成异常。比如我们可以定义一个LogicException用于表示业务逻辑异常。


  自定义异常的两种方式,可以继承Exception类或RuntimeException类。一般推荐继承RuntimeException类。


  继承异常类之后,一般的,需要提供无参构造方法和带一个String类型参数的构造器。


  定义一个客户类,表示一个客户。

image.png

  定义一个客户异常,专门表示抛出给用户看的异常类型。

image.png

  测试类

image.png

  本系列教程为动力节点Java基础内部教材,若要获得最好的学习效果,需要配合对应教学视频一起学习。视频教程:http://www.bjpowernode.com/video.html,希望可以帮助到大家,学习中遇到问题,可登录官网咨询在线客服老师。

开班信息

同类文章

微信搜索“动力节点Java学院“或扫二维码

关注官方微信免费领学习资料

动力节点Java培训机构,行业口碑最好的Java培训机构。

立即抢名额