异常一(Exception)

来源:互联网 发布:知柏地黄丸可以治口臭 编辑:程序博客网 时间:2024/05/18 01:32


问题也是现实生活中一个具体事物,也可以通过类的形式进行描述。并封装成对象。其实,Exception就是java对不正常情况进行描述后的体现。也就是说Exception实际上就是程序运行时的不正常情况的具体体现。

对于比较严重的问题,java通过Error来描述,对不是特别严重的问题javaException来描述,Exception可以用针对性的方法来处理。对于Error不编写针对性的方对其进行处理。

以上就是java中整个ErrorException体系。

异常体系有一个特点:因为异常类和异常对象都需要被抛出,所以他们都具备可抛性。这个可抛性是throwable体系中的独有特点,只有这个体系中的内涵和对象才能被throwsthrow操作。

throws 使用在函数上,后面跟异常对象,可跟多个用逗号隔开,throws抛出异常表明该方法可能出现问题,实质上就是一个声明,告诉要调用我的人一声该方法可会出问题,要做一些预先的处理工作。

throw使用在函数内部,后面跟的是异常对象,即将出现的问题封装成对象。

Throwable中为我们理工很多处理异常时好用的方法比如getMessage()返回异常名:异常信息。printStackTrace()打印异常名,异常信息,异常出现的位置。jVM在处理异常时调用的是printStackTrace()打印异常的堆栈的跟踪信息

Java为我们提供了专门的处理Exception的语句块

Try{

}catch(){

}

Catch(){

}finally{

}

Try块后面可以跟0个或多个catch,当存在catchfinally块可有可无但没有catch时必须得有finally块,并且finally块中的语句块不论什么情况(不管有没有异常发生)都会运行的,除了用System.exit(0)结束程序运行外;所以finally块通常用来关闭由于非正常情况下没来的及关闭的一些资源和一些善后工作。如果没有产生异常catch中的代码块不会运行,但finally块中的内容会运行,当异常产生是,产生的是什么异常,哪个catch块中的匹配就运行那catch块中的语句,但最后都会运行finally

异常分为两种:

1.    编译时被检测到的异常,该异常在编译时如果没有对其进行处理(try_catch throws),编译将不会通过,该异常被标识表明其可以被处理。

2.    运行时异常(RuntimeException),在编译时不需要被处理,编译器不检查,该异常发生时,建议不处理,让程序停止,需要对代码进行修改。RuntimeException如果在函数内被抛出,函数上可以不声明,编译可以通过。如果在函数上声明throws RuntimeException 在调用该方法时可以不处理该异常,编译也还是可以通过的,之所不用声明,是因为不需要让调用者处理。但该异常发生,希望程序停止,因为运行时出现了无法运算的情况,希望停止程序后由程序员对代码进行修改或修正。

 


 

原创粉丝点击