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