Java基础二 异常

Java异常类结构

在这里插入图片描述

Tips


  • 错误(Error)一般为Jvm或系统造成的,无需程序员编写代码,也无需继承来实现功能。
  • 异常分为两种,运行时异常(RuntimeException类,只有运行时才会发现的异常)和编译时异常(Exception下除RuntimeException外的其他子类,在编译期间就可以发现的异常)。
  • 常见运行时异常:空指针异常,算术异常,类型转换异常,数组下标越界异常。
  • 常见编译时异常:IO流异常,中断异常。

  • JVM有一个默认处理异常的方式,即控制台打印错误信息,终止程序。
  • Java程序中如果没有对异常进行处理,该异常就会交由JVM默认处理。
  • SpringMVC中不对异常进行处理,但是程序也没有终止,这是因为异常会一直传递到DispatchServlet中处理(并非由JVM默认异常处理)。

  • 自定义异常需要继承RuntimeException。
  • 自定义错误可以继承Error(但是没人这么做,因为Error都是重大程序错误,不用通过代码解决,需要从其他方式解决,而不是捕获)。
  • 自定义全局异常处理器有三种方式:
    – spring版(太老,不是很清楚)。
    – SpringMVC版:实现HanderExceptionResolve类。
    – SpringBoot版:通过@ControllerAdvice和@ExceptionHander搭配实现。

  • 不要用异常来控制程序流程,因为异常的创建和处理会影响程序性能。
  • throw是方法中使用,用来抛出异常;throws是声明方法用,用来说明该方法可能会抛出哪些异常。
  • final、finally、finalize的区别。(finalize是对象在被清理前可以做的一些操作)。
  • 异常要尽量具体到个体,而不是全部都当做Exception捕获。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值