java异常的总结
来源:互联网 发布:仿百度搜索源码 编辑:程序博客网 时间:2024/06/05 04:40
一、异常是什么?
是对问题的描述,对问题进行对象的封装,符合java一切皆对象的设计思想。
二、异常的体系结构
Throwable
|--Exception
|--RuntimeException
|--Error
异常体系的源头为Throwable类,主要包括Exception和Error两大体系。用人体疾病来做类比就是,Error是不可治愈的疾病,例如癌症,不可以进行处理;Exception是可治愈的疾病,例如小感冒,可以通过程序进行处理。
都可以被关键字throws和throw进行操作,也只有异常体系具有此特点。
三、throws和throw的用法
throw定义在函数内,用来抛出异常对象;throws定义在函数上,用来抛出异常类,可以抛出多个异常类;
若抛出的异常对象有父子关系,父异常应该在子异常后面抛出。
当函数内容中有throw抛出异常对象,却没有进行try处理异常的时候,应该在函数上throws出异常类。当然,若出现的异常是RuntimeException及其子类,就不需要在函数上throws出异常类,只需要在函数内throw抛出异常对象就可以了。
如果函数上声明了抛出异常类,有两种处理方式:可以继续throws抛出;也可以try进行处理。
四、异常的种类,有两种
- 编译时被检测异常:该异常在编译时,如果既没有throws,也没有进行try处理,那么编译失败;
- 运行时异常(编译时不进行检测):在编译时不需要处理,在编译时也不需要检查,在该异常发生时,不需要处理,让程序停止,让调用者认识到错误的发生,从而修改代码。
五、异常处理的语句格式
- try{}catch(){}
- try{}finally{}
- try{}catch(){}finally{}
注意:finally中一般用来释放资源句柄,只有处在System.exit(0)语句之后时才不执行,其他情况一定会执行。
六、自定义异常
一般继承Exception或者RuntimeException,前者定义编译时异常,后者定义运行时异常
七、一个自定义异常的小例子
class NoValueException extends RuntimeException{public NoValueException(String message){super(message);}}interface Shape{abstract public double area();}class Rectangle implements Shape{private double length;private double width;public Rectangle(double length,double width){if(length<=0 || width<=0)throw new NoValueException("出现非法值!");this.length=length;this.width=width;}@Overridepublic double area() {// TODO Auto-generated method stubreturn this.length*this.width;}}public class ExceptionDemo {public static void main(String[] args) {// TODO Auto-generated method stubtry {double area = new Rectangle(-100, 10).area();System.out.println("长方形的面积为:"+area);} catch (NoValueException e) {// TODO: handle exceptionSystem.out.println(e.toString());}}}
一个小小的总结。~<>~
- java异常的总结
- Java的异常总结
- java异常的总结
- Java的异常总结
- Java常见的异常总结
- java 异常处理的总结
- Java常见的异常总结
- Java常见异常的总结
- Java中异常的总结
- java笔记 java中异常的总结
- JAVA网络异常的小总结
- java的常见异常与错误总结
- java中异常的处理总结(二)
- java线程和异常的小总结
- java常见的运行时异常总结
- Java异常的总结-----黑马程序员
- java的常见异常与错误总结
- Java 异常处理的误区总结
- LIBSVM在Matlab下的使用
- python函数错误
- 腾讯课堂笔记day1+day2
- docker实用命令--未完待续
- 产品经理之互联网产品的常见商业模式
- java异常的总结
- linux下安装Nginx
- 传统实现线程的俩种方式-笔记整理1
- 部分关键字
- logistic回归
- 产品经理之竞品分析-全栈工程师熊盼
- 多边形面积交、并模板
- ubuntu14.04 Samba服务无法访问 可能没有权限 指定的网络名不再可用的问题
- 09:移动路线