zoukankan      html  css  js  c++  java
  • java异常处理机制思路总结

              Throwable

    Error                Excepiton

    错误                异常

    通常是一些物理性错误        人为规定的不正常现象

    StackOverflowErrow         运行时异常/编译时异常 

    OutOfMemoryError

    Error和RuntimeException这类异常,javac编译时不检测,不需要主动添加处理异常的手段(当然你愿意加也可以)

    运行时异常RuntimeException跟Error之外的其它异常比如IOException都属于编译异常,必须添加处理手段,否则编译不过

    处理异常的手段:

    一.try{}catch(){}finally{}

    1.try不能单独出现,后边必须跟一个其它结构,catch或finally都可以,当然,通常没人这么干,不catch的话那么后续代码中断达不到处理效果

    2.catch可以有多个,要么多个catch捕获的异常没有继承关系,要么继承关系从小到大,就像小容器可以放在大容器里面,反过来则不行,如果前面的catch异常类大于后边的则,不会执行后边的catch了

    3.finally可有可无,若添加了,则必执行,即使在方法中,try块里有return也会执行,先执行finally,然后返回执行return

    4.注意方法内部返回值问题

    5.注意final、finally、finalize区别。实际上这三个关键字除了长得像之外并无联系,final特征修饰符:修饰类-最终类不可被继承、方法-不可被重写、属性-值不可改变

    finally:异常结构的一部分。finalize:在object类中有名字叫finalize的方法,这个方法的作用是,对没有指向的null对象,当GC进行回收前会自动调用该方法。

    二.throws:

    1.只能在方法和构造方法结构上存在(抛出异常),告诉编译器,我知道可能产生异常,你放心让我通过编译吧

    2.谁调用此方法,谁处理异常。不处理的话继续向上抛

    3.抛出异常可以有多个,用逗号隔开。

    三.自定义异常

    1.写一个类,继承Exception RuntimeException

    2.类中可以写带String参数的构造方法,做详细的异常说明

    3.通过throw关键字 ,new一个异常对象

  • 相关阅读:
    E: 未发现软件包 install_flash_player_11_linux.x86_64.tar.gz
    E: 无法获得锁 /var/lib/apt/lists/lock
    axis1.4与myeclipse开发webservice
    WSDLToJava Error: Rpc/encoded wsdls are not supported with CXF
    org.hibernate.MappingException
    JavaScript控制输入框只能输入非负正整数
    JavaScript控制输入框中只能输入中文、数字和英文
    java.lang.ClassCastException:java.math.BigDecimal cannot be cast to java.lang.String
    更改现有索引的表空间
    Ping 1000个包看丢跑率
  • 原文地址:https://www.cnblogs.com/hebiao/p/12490645.html
Copyright © 2011-2022 走看看