黑马程序员_Java_异常机制及常见异常总结
来源:互联网 发布:数据圈付费社区 编辑:程序博客网 时间:2024/06/06 20:40
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一、异常
1.什么是异常 在程序运行时出现的错误. 2异常体系: Throwable |--Error 严重的问题,是处理不了的。要改正代码的。 |--Exception 非RuntimeException的,是需要处理的。编译期异常。 |--RuntimeException 不需要处理的,是需要改代码的。运行期异常。 3.异常的分类 (a).Throwable, 可以被抛出的. 是所有错误和异常的父类. (b).Error, 严重的错误, 一般由虚拟机抛出, 程序中无法对其进行处理. (c).RuntimeException, 运行时异常. 在程序中经常会出现的一些错误, 通常我们对其不进行处理. 这些异常如果没有处理在编译的时候不会报错. (d).Exception(不包含RuntimeException), 编译时异常, 必须在程序中进行处理的异常. 4异常的解决方案: A:自己处理 基本格式: try{ 可能发生异常的代码; }catch(异常类名 变量名){ 异常的处理代码; }finally{ 释放资源的代码; } 注意:一旦有一次发生,就会立马执行catch里面的代码。 变形格式: try...catch try...catch...catch try...catch...catch...finally try...finally JDK7针对多个catch进行了优化: catch(异常1 | 异常2 | 异常3 ... 变量){} 注意:这些异常必须是平级关系。 和try...catch...catch的不同点是 JDK7的这种方案是必须平级关系,不能有子父关系。 而try...catch...catch父亲放最后是可以的。 B:抛出处理 用throws关键字在方法上声明(抛出)。 5.异常细节 (a). printStackTrace(); 打印异常的详细信息, 包含3部分 异常的全限定名(包名.类名) 异常的message 异常的出现位置 (b). 子类不能比父类抛出更多的异常 子类只能比父类强, 不能比父类弱 (c). 处理多个异常 try中写有可能出异常的代码, 针对多个异常写多个catch 或者 catch抓Exception 在方法签名上声明抛出多个异常, 以","分割 (d). finally嵌套使用 在程序中有可能多条代码都是必须执行, 而其中某些语句也会抛出异常. 那么就需要在finally中嵌套使用try, 将有可能出现异常的语句放在try中, 其他必须执行的语句放在与之对应的finally中 6.自定义异常 我们可以自己定义一个异常, 继承Exception, 重写其构造函数 6:Exception和RuntimeException的区别? A:Exception 编译时期异常,必须处理的。 如果在方法上,throws了该类型的异常,将来调用者必须处理。 如果在方法内部,throw了该类型的异常,必须在方法上throws该异常。 B:RuntimeException 运行时期异常,是不需要处理的。要改代码的。 如果在方法上,throws了该类型的异常,不需要处理。 如果在方法内部,throw了该类型的异常,方法上可以throws该异常,也可以不throws该异常。 7:throw和throws的用法和区别? A:throw 用法:用在方法内部,后面跟的是异常对象名称。 区别:用throw抛出了编译时期异常,方法上面必须用throws抛出。 用throw抛出了运行时期异常,方法上面可以不用throws抛出。 B:throws 用法:用在方法声明上,后面跟的是异常类名。 区别:用throws在方法上声明了异常,内部可以没有throw
二:常见异常总结:
ArrayIndexOutOfBoundsException数组角标越界异常
NullPointerException空指针异常 UnsupportedOperationException不支持的操作 IndexOutOfBoundsException索引出界 IllegalStateException非法状态 ClassCastException:数据类型转换异常。 SQLException:操作数据库异常类。 NumberFormatException:字符串转换为数字类型时抛出的异常。 java.lang.ClassNotFoundException 异常的解释是"指定的类不存在"。 java.lang.ArithmeticException 这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常。 java.lang.ArrayIndexOutOfBoundsException异常的解释是"数组下标越界"。 java.lang.IllegalArgumentException这个异常的解释是"方法的参数错误。 java.lang.IllegalAccessException这个异常的解释是"没有访问权限"。 EmptyStackException(空栈异常)。
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
0 0
- 黑马程序员_Java_异常机制及常见异常总结
- 黑马程序员_Java_异常机制及常见异常总结
- 黑马程序员_Java_异常机制及常见异常总结
- 黑马程序员_JAVA_异常
- 黑马程序员_Java_异常
- 黑马程序员_java_异常&泛型
- 黑马程序员(九) 异常及常见异常总结
- 黑马程序员_java_面向对象_异常
- 黑马程序员------Throwable及常见异常
- 黑马程序员_Java_反射机制总结
- 黑马程序员 异常处理机制的总结
- 黑马程序员--异常机制
- 黑马程序员--异常机制
- 黑马程序员--异常总结
- 黑马程序员-异常总结
- 黑马程序员---异常总结
- 黑马程序员--异常总结
- 黑马程序员--异常总结
- 黑马程序员_正则表达式
- Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决
- 黑马程序员_Java基础泛型
- HDU ACM 1077 Catching Fish
- 表达式求值
- 黑马程序员_Java_异常机制及常见异常总结
- HDU 3535 AreYouBusy
- Install the high performance Nginx web server on Ubuntu
- unity内部float类型转换string类型只保留整数部分
- 数学中国体力值
- Python笔记——01模块安装方法
- java加密解密工具类
- PHP知识积累
- bzoj 2631: tree