java自学之路----- 异常
2014-04-29 22:12
197 查看
异常{
定义:运行时期 发生的不正常情况,并且对不正常情况进行了描述、封装对象;java通过面向对象思想将问题封装成了对象Throwable{
不同处理:Error,由JVM抛出严重性问题,发生了一般直接修改程序
可处理:Exception,
}
编译时可被检测异常:除了RuntimeException之外Exception及其子类,该类把异常从方法中抛出到main方法,方法要加throws,main方法也要加throws,该异常在编译时期就检测,解决办法是让问题有对应的处理方法,针对性处理
运行时检测的异常:Exception中的RuntimeException及其子类,无法让功能继续,运算无法进行,大多情况都是因调用者的原因导致的或引发了内部状态的改变导致,这种问题一般JVM不处理,编译的时候直接通过,运行的时候让调用者调用的程序强制停止,让调用者对代码进行修正
自定义异常:让一个类成为异常类,继承异常体系,因为只有异常体系才有资格具有可抛性,才可以被两个关键字操作throw 和throws
例:class 类
extends Exception(){}
}
throws:用于函数上,抛出异常类,有多个的时候用逗号间隔
throw:用于函数内部,抛出异常对象,有多个throw的时候只能引发一个,其他的将不会执行
异常捕捉{
对异常进行针对性处理
格式:try{ }
catch(异常类 变量){
} finally{
}
注意{
1.函数内部如果抛出需要检测的异常,那么在函数上要声明或者使用捕捉的方式(try catch)
2.如果调用到声明异常的函数,要么try catch或throws,否则程序无法继续运行
3.功能内容可以解决用catch,不能解决就throws告诉调用者
4.可以有多个需要检测的异常,就抛出多个,或者用多个catch捕捉
5.System.exit(0),强制改程序退出JVM
}
finally{
1.通常用于关闭或释放资源
2.try可以和finally一起使用,用于关闭资源,并且将异常抛出交给上级处理
3.没有catch就没有捕捉就必须声明(throws)
}
重点:子类覆盖父类方法的时候,如果父类方法抛出异常,子类的方法只能抛出父类的异常或该异常的子类,父类抛出多个异常,子类只能抛出父类异常的子集,如果父类方法没有抛出异常,子类也不能抛出异常,只能用try catch捕捉处理。
原因大致是因为在某个方法中接受父类对象的引用,在执行父类方法的时候抛出了异常,对这些异常运用catch进行了捕捉并且处理,但是如果将子类的对象传给父类的引用(多态),子类的方法又抛出了另一些异常,那些catch就不能对子类方法抛出的异常进行处理
}
相关文章推荐
- Java自学之路-Java基础教程-33:Java的异常类Exception和throws关键字
- java 自学之路转载
- java自学之路4
- 一个java程序员自学IOS开发之路(七)
- Java自学之路-Java基础教程-12:Java基本语句之2-循环控制语句for
- 马士兵_JAVA自学之路
- Java自学之路-Java基础教程-24:Java工程结构以及类路径classpath
- Java自学之路-Java基础教程-31:Java读文件操作和类的构造方法
- [Java开发之路](5)异常
- 深入理解java异常处理机制(用于自学)
- 一个java程序员自学IOS开发之路(八)
- JAVA自学之路 三:要动手
- 一个java程序员自学IOS开发之路(四)
- JAVA自学之路 四:要事为先
- Java自学之路-Java基础教程-43:Java的常量和final关键字
- Java自学之路(新手一定要看)
- [尚学堂]JAVA自学之路 五:问题解决之道
- Java自学之路前沿
- JAVA自学之路_马士兵
- java自学之路-----jdbc_事务and连接池