黑马程序员--Java笔记07--异常
来源:互联网 发布:水冶豫广网络缴费 编辑:程序博客网 时间:2024/06/06 19:45
异常
异常:在运行时期发生的不正常情况,Java通过面向对象将将问题封装成对象,用异常对问题进行描述
可抛性:凡是可以被throw、throws所操作的类都具有可抛性
异常分为两大类:
Error:一般不可处理
特点:由JVM抛出的严重性问题
这种问题发生一般不针对性处理,直接修改程序
Exception:可处理
子类的后缀名都是用其父类作为后缀
Throwable中的方法:
1.getMessage():获取异常信息,返回字符串
2.toString():获取异常类名和异常信息,返回字符串
3.printStackTrace():获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void
4.printStackTrace(PrintStream s):将异常内容保存在日志文件中,以便查阅
自定义异常:自定义问题描述
如果让一个类成为异常类,必须要继承异常体系,这样才可被throw、throws操作,具备可抛性
自定义类继承exception或其子类,通过构造函数定义异常信息
Throws和throw的区别:
1.throws用于标识函数暴露出来的异常类,可以抛出多个,逗号分割,
throw用于抛出异常对象
2.throws用在函数上,后面跟异常类名,
Throw用在函数内,后面跟异常对象
3.定义功能方法时,要把出现的问题暴露出来让调用者去处理,,就通过throws在函数上标识
在功能方法内部出现问题,程序不能继续运行,需要跳转,用throw把异常对象抛出
Exception异常的分类:
1.编译时被检测异常:除了RuntimeException体系之外的Exception及其子类
问题在编译时期就被检测,这样可以针对性的处理
2.编译时不检测异常:RuntimeException及其子类
这种问题的发生,无法让功能继续,这种问题一般不处理,直接编译通过,在运行时让调用者调用的程序强制停止,让调用者对代码进行调整
RuntimeException是那些可能在Java虚拟机正常运行间抛出的异常的超类
可能在执行方法期间抛出但并未被捕获的RuntimeException的任何子类都无需在throws子句中进行声明
所以自定义异常时,要么继承Exception,要么继承RuntimeException
异常的捕捉形式:
try{} catch{} finally{}
Finally代码块只有在一中情况下不被执行,就是之前执行了System.exit(0)
Finally代码块通常用来关闭资源
注意:try是一个独立的代码块,在其中定义的变量只在该变量块中有效,如果在try以外继续使用,需要在try外建立引用,在try中对其进行初始化
异常的处理原则:
1.函数内如果抛出需要检测的异常,那么函数上必须要声明,否则必须在函数内使用try catch捕捉,否则编译失败
2.如果调用到了声明异常的函数,要么try catch,要么throws,否则编译失败
3.功能内可以解决用catch,解决不了用throws
4.一个功能抛出多个异常,调用时必须有对应多个catch进行处理
代码块组合:
try catch finally try catch(多个) try finally
异常的注意事项:
1.RuntimeException及其子类在函数中被throw抛出,可以不用在函数上声明
2.子类在覆盖父类方法时,父类方法如果抛出异常,那么子类的方法只能抛出父类的异常或者该异常的子类
3.如果父类抛出多个异常,那子类只能抛出父类异常的子集
4.如果父类方法没有抛出异常,那么子类覆盖时就不能抛,只能try
- 黑马程序员--Java笔记07--异常
- 黑马程序员--Java异常处理笔记
- 黑马程序员-java异常学习笔记
- 黑马程序员--java异常学习笔记
- 黑马程序员--java异常学习笔记
- 【黑马程序员】 java笔记——异常
- 黑马程序员-学习笔记java基础-异常
- 黑马程序员 java笔记之异常
- 黑马程序员 java学习笔记 Day1:异常
- 【黑马程序员】Java学习笔记--异常
- 黑马程序员--学习笔记--Java异常处理
- 黑马程序员---异常笔记
- 黑马程序员 Java异常
- 黑马程序员-java异常
- 黑马程序员-java异常
- 黑马程序员 Java 异常
- 黑马程序员:java异常
- 黑马程序员-----java 异常
- 用adb将手机/data/data/com.android.providers.contacts/databases下的contacts2.db拷贝到电脑上
- STL中sort()的相关运用
- 黑马程序员--Java笔记06--多态
- linux搭建git服务器
- [leetcode] 162 Find Peak Element(二分)
- 黑马程序员--Java笔记07--异常
- Android NDK 环境搭建 之 起始篇NDK HelloWorld
- Composite(组合)设计模式
- 黑马程序员--Java笔记08--多线程 创建、安全问题、线程间通信
- 多线程中栈空间的分配 http://biancheng.dnbcw.info/linux/303270.html
- PhoneGap插件调用Java流程源码分析(三)
- 《第一行代码--Android》读书笔记之碎片
- ---Maya&Python---001---
- svn: E175002: java.lang.RuntimeException: Could not generate DH keypair