黑马程序员—学习java基础3日记

  1. ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
  2.            
  3.              异常
  4.   一:异常:就是程序在运行时出现不正常情况。
  5.        1.异常的由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。
  6.                     其实就是java对不正常情况进行描述后的对象体现。
  7.           2.对于问题划分为两种:一种是严重的问题,一种非严重的问题。
  8.           3.对于严重的,java通过Error类进行描述。
  9.                对于Error一般不编写针对性的代码对其进行处理。
  10.             对于非严重的,java通过Exception类进行描述。
  11.                对于Exception可以使用针对性的处理方式进行处理。
  12.            无论Error或者Exception都具备有一些共性内容。比如:不正常情况的信息,引发原因等。
  13.           4. Throwable
  14.                |--Error
  15.                |--Exception
  16.                    |--RuntimeException
  17.                异常体系特点:异常体系中的所有类已经建立的对象都具备可抛性。也就是说可以被throws和throw关键字所操作。
  18.                            只有异常体系具备这个特点。
  19.           5.异常有两种:
  20.              1):编译时被检测异常:
  21.                     该异常在编译时,如果没有处理(没有抛也没有try),编译失败。
  22.              2):运行时异常(编译时不检测)
  23.                     在编译时,不需要处理,编译器不检查。
  24.                     该异常的发生,建议不处理,让程序停止,需要对代码进行修正。
  25.    二:异常的处理:
  26.       1. java提供了特有的语句进行处理
  27.        try
  28.        {
  29.            需要被检测的代码;
  30.        }
  31.        catch(异常类  变量)
  32.        {
  33.             处理异常的代码;(处理方式)
  34.        }
  35.        finally
  36.        {
  37.             一定会执行的语句;
  38.        }
  39.       
  40.       有三种结合格式:
  41.        try
           {
           }
           catch () 
           {
  42.        }
  43.     ——————————————
  44.        try
           {
           }
           finally
           {
           }
  45.    ————————————
  46.        try
           {
           }
           catch ()
           {
           }
  47.        finally
  48.        {
  49.        }
  50.     
  51.     注意:1,finally中定义的通常是关闭资源代码,因为资源必须释放。
  52.          2,finally只有一种情况不会执行,当执行到System.exit(0);finally不会执行。

  53.       2. 在函数上面声明异常。便于提高安全性,让调用出进行处理,不处理编译失败。
  54.         (1)声明异常时,建议声明更为具体的异常,这样处理的可以更为具体。
  55.         (2)对方声明几个异常,就对应有几个catch块,不要定义多余的catch块。
  56.             如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
  57.             建立在进行catch处理时,catch中一定义要定义具体处理方式。
  58.              不要简单定义一句 e.printStackTrace();  也不要简单的就书写一条输出语句。
  59.         (3)对捕获到的异常对象进行常见方法操作。String getMessage(): 获取异常信息。




  1.       三:自定义异常:定义类继承Exception或者RuntimException
  2.         1.如何定义异常信息?
  3.            因为父类中已经把异常信息的操作都完成了,所以子类只要在构造时,将异常信息传递给父类通过super语句。
  4.             那么就可以直接通过getMessage方法获取自定义的异常信息。
  5.         2.自定义异常必须是自定义类继承Exception
  6.             继承Exception的原因:异常体系有一个特点:因为异常类和异常对象都抛出。
  7.             他们都具备可抛性。这个可抛性是Throwable这个体系中独有的特点。
  8.             只有这个体系中的类和对象才可以被throws和throw操作。
  9.         3.throws和throw的区别:
  10.             throws使用在函数上;   throw使用在函数内。
  11.            throws后面跟的异常类,可以跟多个,用逗号隔开。
  12.            throw后跟的是异常对象。




  13.       4,Exception中有一个特殊的子类异常RuntimeException 运行时异常。
  14.         如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过。
  15.         如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
  16.            之所以不用在函数上声明,是因为不需要让调用者处理。



  17.      5,异常的好处:
  18.         1,将问题进行封装。
  19.         2,将正常流程代码和问题处理代码相分离,方便阅读。
  20.      6,异常注意事项:
  21.          在子类覆盖时: 
  22.         1,子类抛出的异常必须是父类的异常的子类或者子集。
  23.         2,如果父类或者接口没有异常处理时,子类覆盖出现异常,只能try不能抛
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值