`

Java基础-异常

阅读更多

1、异常是什么?

用面向对象的思想将问题进行描述,并将问题进行对象的封装。

2、异常体系

Throwable

        |--Error:不需要编写针对性处理方式

        |--Exception:需要编写针对性处理方式进行处理

3、throw和throws的区别:

      throw:定义在函数内,抛出一个异常对象。(throw抛异常对象的时候,其下面最好不要放其他语句,因                   为一旦执行throw语句,下面就不执行了)

      throws:定义在函数上,抛出异常类,可以抛出多个用逗号隔开。

4、Exception的分类有两种:

           编译时异常:编译时被检测

                                ①该异常在编译时,如果没有处理(没有抛也没有try),编译失败

                                ②该异常被标识,代表这个异常可以被处理

           运行时异常:RunntimeException

                              在编译时,不需要处理,编译器不检查。该异常的发生,建议不处理,让程序停止,需                                 要对代码进行修正。

                              如果在函数内抛出RunntimeException,函数可以不用声明,编译一样通过。如果在函数                              上声明了该异常,调用者可以不用进行处理,编译一样通过,之所以不用在函数上声明,                               是因为不需要让调用者处理。

5、异常的处理语句:



 

 

 

注意:①finally语句中通常定义的是关闭资源代码,因为资源必须释放。finally语句只有在执行到System.exit(0)时不会执行。

         ②catch是用于处理异常,如果没有catch就代表异常没有被处理过,如果该异常是检测时异常,那么必须声明。

         ③一个try后面可以跟多个catch块,不管后面跟多少catch块,最多只能执行一个catch块

 

6、异常的处理方式:

         ①  使用try...catch...finally进行捕获

           ② 在产生异常的方法声明后面throws某一个Exception类型,将异常抛到外面一层去

6、异常处理的原则:

      ①声明异常时,建议声明更为具体的异常,这样处理的可以更具体

      ②对方声明几个异常,就对应有几个catch块,不要定义多余的catch块。如果出现多个catch块中的异常             出现继承关系,父类异常catch块放在最下面,这样保证后续的catch块可能被执行。否则子类型的                 catch块永远无法到达。如果异常是独立的,它们的先后顺序是没有要求的。

7、异常在子父类中的体现:

     ①子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类

     ②如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集 

     ③如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。如果子类方法中发生了异常,就必须进行try处理,绝对不能抛。

8、自定义异常:定义类继承Exception或者实现Runnable接口

为什么要继承Exception或者实现Runnable接口?

①为了让该自定义类具备可抛性。只有这个体系中的类和对象可以被throw和throws操作

②为了让该类具备操作异常的共性方法

 

自定义异常必须手动抛出异常对象,而java中的异常可以自动抛出也可以手动抛出。

 

 

 

 

 

 

  • 大小: 12.5 KB
  • 大小: 21.2 KB
  • 大小: 66.1 KB
  • 大小: 39 KB
  • 大小: 22.5 KB
  • 大小: 29.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics