thinking in java第七天

来源:互联网 发布:龙虎榜持仓数据变化 编辑:程序博客网 时间:2024/05/18 00:05

第十二章 异常处理

  1. try {// Code that might generate exceptions} catch ( e) {// TODO: handle exception}
  2. throw new NullPointerException("");在使用new 创建了异常对象之后,此对象的引用将传给throw
  3. system.err.println();将错误发送给标准错误流,不会随System.out一起被重定向
  4. Throwable类声明的printStackTrace():打印从方法调用处直到异常抛出处的方法调用序列
  5. 异常与记录日志:可以使用java.util.logging,也可以使用Apach下的common-logging.jar
  6. 自定义异常,通常都是直接继承某个异常类,重写构造器方法,覆盖getMessage方法
  7. 异常说明:即方法后面使用了throws,后面接一个所有潜在的异常类型的列表
  8. getStackTrace()返回一个由栈轨迹中的元素构成的数组
  9. 重新抛出异常
    • 会把异常抛出上一级的环境中的异常处理程序,通一个try的后续catch子句将被忽略(摩根的笔试题)
    • 当抛出同一个异常时,fillInstackTrace()就成了异常的新发生地
    • 当抛出的是不同的异常时,就相当于使用了fillInStackTrace(),原来异常发生点的信息会丢失
  10. 异常链
  11. Throwable这个java类被用来表示任何可以作为异常被抛出的类
    • Error:表示编译时和系统错误
    • Exception:是可以被抛出的基本类型
    • 并非所有的异常包都是从java.lang包里定义的,如IOException
  12. RuntimeException:不需要再异常说明中声明方法将抛出该异常
    • 如果RuntimeException没有被捕获而直达main(),那么在程序退出前将调用异常的printStackTrace()方法
    • 只能在代码中忽略RuntimeException及其子类
  13. finally:必然执行块
    • 当涉及break,continue,return语句的时候,finally子句也会得到执行
    • 当涉及到两种情况时,会导致异常丢失
      • 前一个异常还没被处理就在finally中抛出下一个异常
      • 直接在finally中return,这将屏蔽所以异常处理
0 0
原创粉丝点击