黑马程序员~异常小述
来源:互联网 发布:淘宝的宝贝描述分数 编辑:程序博客网 时间:2024/05/01 18:37
如果程序在编译时没有错误信息产生,而在程序运行时,出现一些问题,这样的问题就被称为异常。Java对异常的处理也采用了面向对象的方式,所有的异常以类的形式存在。除了自带的异常类外, 也可以自定义异常。这些异常有的需要编程时手动进行捕获处理或声明抛出,有的是由JVM自动进行捕获处理。手动处理是通过try-catch, throws语句来解决。
一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类。如果父类抛出多个异常,那么子类必须抛出那些异常的一个子集,不能抛出新的异常。
异常的体系:
一、Error类及子类:
通常描述出现重大问题,仅靠修改程序本身是不能恢复执行的,致命性的java内部错误或资源耗尽错误。如运行的类不存在或者内存溢出等。多数情况下,发生此类问题时建议终止程序。
二、Exception类及子类:
非致命类,可以通过编写代码解决捕获处理后正常运行。在编程时进行的异常处理,主要是针对这个部分进行操作。
该类分为两种类型,一个是RuntimeException,另一个是非RuntimeException。
1、RuntimeException一般不通过try-catch, throws语句解决,而是java虚拟机在运行时自动捕获并抛出。如除数为零,数组角标越界,空指针异常等。
2、非RuntimeException可通过try-catch, throws语句解决。常见的使用try-catch处理异常时会有如下问题:
(1)在使用try的时候,不应该把多个可能出现异常的代码放入一个try块中,这样出现问题不容易分析。如果需要在同一个try中放入多个可能报不同异常的代码,最好分开catch去处理,不要只捕获一个Exception。
(2)编写程序时有时只对错误进行捕获,却不处理,这样在程序中很难发现错误。如果在catch块中只调用printStackTrace方法,仅是对调试程序有帮助,最好在处理时能针对用户做出友好设计。
(3)另外,如果程序占用了资源,那么在try-catch结束之后应该使用finally语句关闭资源。
(4)在调用程序输出信息的时候,可能输出过程中会发生异常。由于异常前可能已经有信息显示给用户了,那么用户得到的信息就是一个片段,是不完整的,这样的话应该提示用户请求的信息有缺失。或者使用缓冲区,在信息确认完整时再显示给用户。
------- android培训、java培训、期待与您交流! ---------- 详细请查看:http://edu.csdn.net/heima/
- 黑马程序员~异常小述
- 黑马程序员—异常小知识点整理
- 黑马程序员---异常?异常!
- 黑马程序员~多线程小述
- 黑马程序员~枚举小述
- 黑马程序员~反射小述
- 黑马程序员---异常处理异常
- 黑马程序员-程序异常
- 黑马程序员:异常问题
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员 异常
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员---异常处理
- 黑马程序员二、异常
- 黑马程序员_异常
- 黑马程序员_异常
- can't open '/dev/misc/rtc': No such file or directory
- nyoj_257 郁闷的c小加
- 递归做1元钱换零钱
- HDU 1518
- 关于php,phpmyadmin和mysql数据库命令行显示中文乱码问题
- 黑马程序员~异常小述
- 版本升级之'initWithFrame:reuseIdentifier:' is deprecated
- Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- 学生信息管理系统中遇到的问题
- 了解JSP中request属性的用法(request.getParameter() 和request.getAttribute() 区别)
- gnumex - Matlab下调用gcc编译
- ubuntu中文文件名乱码
- c#时间格式化字符串详解
- Android dip 与 px 的区别,像素密度的概念。