5、异常与调试
2016-07-11 21:55
344 查看
1. Throwable(Error, Exception(IOException,RuntimeException)):
1) 派生于RuntimeException的异常包含以下几种情况:错误的类型转换;数组越界访问;访问空指针
2) 不是派生于RuntimeException的异常包括:试图在文件尾部后面读取数据;试图打开一个错误格式的URL;试图根据字符串查找Class对象,而这个对象不存在
3) 派生于RuntimeException或Error类的所有异常称为“未检查异常”,其他异常称为“已检查异常”
4) 注意:如果出现RuntimeException异常,就一定是你的问题
2. 四种情况会抛出异常:
1) 调用一个抛出已检查异常的方法
2) 在程序过程中发现错误,并利用throws语句抛出一个已检查异常
3) 程序出现错误,如越界等未检查异常
4) Java虚拟机和运行时库出现的内部异常
3. “异常规范”:如果一个方法可能抛出多个已检查异常,就必须在方法首部列出所有异常,并用逗号隔开;不需要声明java内部错误,就是从Error继承来的异常,我们对他们没有控制力;也不应该声明从RuntimeException继承的未检查异常。总之,一个方法必须声明所有可能的已检查异常,未检查异常要么不可控制(Error),要么应该避免他们发生(RuntimeException)
4. 捕获异常:程序将跳过try语句块中的其余代码,继续执行catch字句中的处理器代码;如果try语句中没有抛出异常,那么程序将跳过catch语句;如果任何代码跑出了一个在catch字句中没有声明的异常类型,那么该方法立即退出
5. finally子句:(无论try语句块是否遇到异常,finally子句都会被执行)
1) 代码没有抛出异常,程序会先执行try中全部代码,然后执行finally子句的代码,随后继续执行try语句块后面的代码
2) 代码抛出一个在catch中捕获的异常,跳过try中剩余的代码,转而执行与该异常匹配的catch子句中的代码,最后执行finally子句中的代码;如果catch子句中没有抛出异常,程序将执行try语句块之后的第一条语句;如果catch子句抛出一个异常,异常将被抛回程序调用者处
3) 代码抛出一个异常,但是异常不是由catch子句捕获,程序将跳过try语句块中剩余代码,然后执行finally子句中的代码,并将异常抛给方法的调用者
1) 派生于RuntimeException的异常包含以下几种情况:错误的类型转换;数组越界访问;访问空指针
2) 不是派生于RuntimeException的异常包括:试图在文件尾部后面读取数据;试图打开一个错误格式的URL;试图根据字符串查找Class对象,而这个对象不存在
3) 派生于RuntimeException或Error类的所有异常称为“未检查异常”,其他异常称为“已检查异常”
4) 注意:如果出现RuntimeException异常,就一定是你的问题
2. 四种情况会抛出异常:
1) 调用一个抛出已检查异常的方法
2) 在程序过程中发现错误,并利用throws语句抛出一个已检查异常
3) 程序出现错误,如越界等未检查异常
4) Java虚拟机和运行时库出现的内部异常
3. “异常规范”:如果一个方法可能抛出多个已检查异常,就必须在方法首部列出所有异常,并用逗号隔开;不需要声明java内部错误,就是从Error继承来的异常,我们对他们没有控制力;也不应该声明从RuntimeException继承的未检查异常。总之,一个方法必须声明所有可能的已检查异常,未检查异常要么不可控制(Error),要么应该避免他们发生(RuntimeException)
4. 捕获异常:程序将跳过try语句块中的其余代码,继续执行catch字句中的处理器代码;如果try语句中没有抛出异常,那么程序将跳过catch语句;如果任何代码跑出了一个在catch字句中没有声明的异常类型,那么该方法立即退出
5. finally子句:(无论try语句块是否遇到异常,finally子句都会被执行)
1) 代码没有抛出异常,程序会先执行try中全部代码,然后执行finally子句的代码,随后继续执行try语句块后面的代码
2) 代码抛出一个在catch中捕获的异常,跳过try中剩余的代码,转而执行与该异常匹配的catch子句中的代码,最后执行finally子句中的代码;如果catch子句中没有抛出异常,程序将执行try语句块之后的第一条语句;如果catch子句抛出一个异常,异常将被抛回程序调用者处
3) 代码抛出一个异常,但是异常不是由catch子句捕获,程序将跳过try语句块中剩余代码,然后执行finally子句中的代码,并将异常抛给方法的调用者
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- Linux 自检和 SystemTap
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序