异常

Throwable----具备可拋性:就是该体系中的类和对象都可以被关键字throw或throws所操作。

  |---Error  ---错误,一般不编写针对性处理方式

  |---Exception---异常,可以有针对性的处理方式

    |---RuntimeException(运行时异常、不被检测时异常)

      |---在函数内被抛出,函数不需要声明(异常发生时,已经无法让程序继续运行,所以不需要调用者处理,直接让程序停止)

    |---CheckedException(被检测时异常)

      |---在函数内被抛出,函数必须要声明,否则编译失败(调用者需要知道是什么异常,来进行针对性处理)

异常处理方式

  |---抛出          ---功能内部出现异常,但是内部不能处理,就抛出

    |---throw:用于函数内,后面跟异常对象,抛出异常对象

    |---thorws:用于函数上,后面跟异常类名,抛出异常类

  |---捕捉(try...catch...fianlly)---功能内部出现异常,并且内部可以处理,就用try

    |---功能抛出几个异常,就调用几个对应的catch处理代码块

    |---try对应多个catch时,父类catch必须放在下面(因为如果放在上面,父类捕捉到异常后,下面的catch就不运行了)

    |---除非JVM退出,finally代码块一定会执行,可以用于用户关闭资源。

当异常出现后,子父类进行覆盖时,有了一些新的特点:

  1、当子类覆盖父类方法时,如果父类抛出了异常,那么子类方法要么抛出父类异常或者该异常的子类,要么不抛出异常。

  2、如果父类抛出多个异常,那么子类覆盖时只能抛出父类异常的子集。

    注意,父类没有抛出异常的情况下,子类是不能抛出异常的,如果此时子类覆盖的方法中出现异常,只能用try不能用throws,但是如果子类不能处理,并且影响到了子类方法的运行,这时可以用throw在函数内抛出RuntimeException异常或其子类(RuntimeException异常不需要在函数上throws声明)。

最新文章

  1. 了解一下C++输入和输出的概念
  2. “基础提供程序在Open上失败”
  3. 设置三思LED的IP地址跟端口号
  4. Optimize Managed Code For Multi-Core Machines
  5. 应用内存优化之OnLowMemory&OnTrimMemory
  6. tomcat集群时统计session与在线人数
  7. 国外一些好用的UX/UI设计工具和资源分享
  8. Socket编程实践(1) --TCP/IP简述
  9. Oracle 11g一步步安装详解
  10. 【读书笔记】iOS-MVC
  11. POJ1456 Supermarket 并查集
  12. ios-UITableView无内容时,不显示多余的分隔线
  13. torchvision库简介(翻译)
  14. mongodb的serverstatus
  15. ubuntu下文件压缩/解压缩
  16. APP开发项目思维导图
  17. [leetcode] 18. Length of Last Word
  18. 希尔排序的理解和实现(Java)
  19. JavaScript高级 面向对象(8)--浅拷贝代码实现
  20. Azure 订阅和服务限制、配额和约束

热门文章

  1. Contacts源码分析(一、概述)
  2. AGC029 E: Wandering TKHS
  3. HDU 4217
  4. sql —— check
  5. @游记@ CSP2019
  6. 【NS2】WiMAX_NS2说明文档(转载)
  7. 阿里云MaxCompute 2019-4月刊
  8. python元组和range
  9. H3C 命令行帮助特性(续)
  10. H3C 各种视图之间的关系