黑马程序员——面向对象--异常

   现在总觉得时间过的好快啊,每天还没有闲下来,一天就过去了,感觉时间越来越不够用了。坚持。
异常大纲:
1.6.1  java中异常的思想 
1.6.2  异常体系结构  
1.6.3  自定义异常 
1.6.4  异常的分类 
1.6.5  Throw与throws的区别 
1.6.6 异常的捕捉形式 
1.6.7  代码快组合的特点  
1.6.7  异常的处理原则  
1.6.8  异常的注意事项  
1.6.9  Finally 

详细介绍开始吧:
异常:
       异常的由来:是在运行时期发生的不正常情况。 1.6.1  java中异常的思想 
         用类的形式对不正常情况进行了描述和封装对象,这种类成为异常类。
    将正常流程代码和问题处理代码分离,提高了阅读性。不同的问题
    用不同的类进行具体的描述,例如:角标越界,空指针等等。

1.6.2  异常体系结构  
      
 
最终问题(不正常情况)就分成了两大类:
Throwable:
无论是error,还是异常,问题,问题发生就应该可以抛出,让调用者知道并处理。
该体系的特点就在于Throwable及其所有的子类都具有可抛性。
可抛弃到底指的是什么呢?怎么体现可抛性呢?
其实是通过两个关键字来体现的,throws throw,凡是可以被这两个关键字所操作的类和对象都具备可抛性。
         |----1,一般不可处理的。Error
                   特点:是由jvm抛出的严重性的问题。
                              这种问题发生一般不针对性处理,直接修改程序。
|----2,可以处理的。Exception

该体现的特点:
         子类的后缀名都是用其父类名作为后缀,阅读性很强。
1.6.3  自定义异常 
           定义异常
          让一个类称为异常类,必须要继承异常体系,因为只有异常体系子类才具备可抛性。

1.6.4  异常的分类 
    异常的分类:
编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系。
这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式。
这样的问题都可以针对性的处理。

2,编译时不检测异常(运行时异常):就是Exception中的和RuntimeException和其子类。
         这种问题的发生,无法让功能继续,运算无法进行,更多是因为调用者的原因导致的而或者引发了内部状态的改变导致的。
         那么这种问题一般不处理,直接编译通过,在运行时,让调用者调用时的程序强制停止,让调用者对代码进行修正。

所以自定义异常时,要么继承Exception,要么继承RuntimeException

如果函数内发生了异常,就需要在函数上进行声明,否则编译失败。
你调用了发生异常的函数或声明异常的函数,你就必须要处理,不处理编译失败

你可能感兴趣的:(黑马程序员——面向对象--异常)