Java学习(异常、断言和日志)

第7章 异常、断言和日志

  • 异常结构分类
    所有的异常都是由 Throwable 继承而来,但在下一层立即分解为两个分支:Error 和 Exception。Exception这个层次结构又分解为两个分支: 一个分支派生于RuntimeException; 另一个分支包含其他异常。

    • 派生于 RuntimeException 的异常包含下面几种情况(只是简单列举,可能包含的不完全)出现这个异常一般都是自己的代码有问题
      • 错误的类型转换。
        • 数组访问越界。
        • 访问 null 指针。
      • 其他异常
        • 试图在文件尾部后面读取数据
        • 试图打开一个不存在的文件
        • 试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在
  • 抛出异常的四种情况

    • 调用一个抛出受查异常的方法。
    • 运行中发现错误,利用throw语句抛出一个受查异常。(程序自主,代码可控)
    • 程序出现错误,抛出非受查异常。(程序不自主,代码不可控)
    • Java虚拟机出现内部错误
  • 捕获异常。利用try/catch来捕获异常。

    • 如果try块中出现异常,程序将会跳过剩下的代码。
    • 程序将执行catch块中的代码。
    • 如果try块中抛出了catch中没有声明的异常,程序会立即退出。
  • 处理异常的几个技巧

    • 异常处理不能代替简单的测试

    • 不要过分的细化异常

    • 利用异常层次结构

    • 不要压制异常

    • 在监测错误时,严格要比放任好

    • 不要害怕传递异常

  • 断言用处不是很多,现在用IDE自带的断点可能会好一点

  • 日志管理可以使用单独的插件或者工具,最好项目中的日志都是统一的

因为目前对于异常的处理还是比较少,感觉只要了解异常的处理方法和实际码代码中异常的正常流程即可。
就这样吧,结束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章