异常就是java应用面向对象的思想将问题进行对象封装。
Throwable:可抛出的
Error:错误,需要对程序进行修正
Exception:异常可以有针对性的处理方式。
这个体系中的所有类和对象都具有一个独有的特性:可抛性。可抛性的体现在于:这个体系中的类和对象都可以被throw和throws两个关键字操作。
在开发时,如果定义功能时,发现该功能会出现一些问题,应该将问题在定义功能时标示出来,这样调用者就可以在使用这个功能的时候,预先给出处理方式。
如何标示呢?通过throws关键字完成,格式:throws 异常类名,异常类名... 这样标示后,调用者,在使用该功能时,就必须要处理,否则编译失败。
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数方法内。
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在声明。
处理方式有两种:1,try...catch捕获 2,抛出
通常情况:函数内如果有throw,抛出异常并未处理,那么函数上一定声明,否则编译失败。
异常分两种: 1:编译时被检查的异常,只要是Exception及其子类都是编译时被检测的异常。 2:运行时异常,其中Exception有一个特殊的子类RuntimeException,以及RuntimeException的子类是运行异常,也就说这个异常是编译时不被检查的异常。
编译时被检查的异常和运行时异常的区别: 编译被检查的异常在函数内被抛出,函数必须要声明,否编译失败。 声明的原因:是需要调用者对该异常进行处理。
运行时异常如果在函数内被抛出,在函数上不需要声明。 不声明的原因:不需要调用者处理,运行时异常发生,已经无法再让程序继续运行,所以,不让调用处理的,直接让程序停止,由调用者对代码进行修正。
定义异常处理时,什么时候定义try,什么时候定义throws呢? 功能内部如果出现异常,如果内部可以处理,就用try; 如果功能内部处理不了,就必须声明出来,让调用者处理。(譬如,年龄不能为负数,但是值是从键盘读入的,需要调用者修改。)
自定义异常:当开发时,项目中出现了java中没有定义过的问题时,这时就需要我们按照java异常建立思想,将项目的中的特有问题也进行对象的封装。这个异常,称为自定义异常。 对于除法运算,0作为除数是不可以的。java中对这种问题用ArithmeticException类进行描述。对于这个功能,在我们项目中,除数除了不可以为0外,还不可以为负数。可是负数的部分java并没有针对描述。所以我们就需要自定义这个异常。
自定义异常的步骤: 1:定义一个子类继承Exception或RuntimeException,让该类具备可抛性。 2:通过throw 或者throws进行操作。
异常的转换思想:当出现的异常是调用者处理不了的,就需要将此异常转换为一个调用者可以处理的异常抛出。
共同学习,写下你的评论
评论加载中...
作者其他优质文章