码迷,mamicode.com
首页 > 编程语言 > 详细

java 异常日志断言调试

时间:2017-06-19 00:30:30      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:日志   src   文件   调用   nbsp   fbo   int   error   系统   

异常

java的异常层次结构

技术分享

Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误.引用程序不应该抛出这种类型的对象.如果出现了这样的内部错误,除了通告给用户,并尽力使程序安全地终止之外,再也无能为力了.

在设计Java程序时,需要关注Exception层次结构.这个层次结构又分解为两个分支:一个分支派生于RuntimeException;另一个分支包含其他异常.划分两个分支的规则是:由程序错误导致的异常属于RuntimeException;而程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其他异常.
    
派生于RuntimeException的异常包含下面几种情况:
    1.
错误的类型转换

    2.
数据访问越界
    3.
访问空指针

   
不是派生于RuntimeException的异常包括:
    1.
试图在文件尾部后面读取数据
    2.
试图打开一个不存在的文件
    3.
试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在
.
    "
如果出现RuntimeException异常,那么就一定是你的问题"是一条相当有道理的规则.应该通过检测数组下标是否越界来避免ArrayIndexOutOfBoundsException异常;应该通过在使用变量之前检测是否为空来杜绝NullPointerException异常的发生.
    Java
语言将派生于Error类或RuntimeException类的所有异常称为未检查异常,所有其他的异常称为已检查异常.

RuntimeException这个名字很容易让人误解,他并不是运行时异常的意思。

 

调用一个抛出了已检查异常的方法,编译器必须要处理这个异常,要么捕获,要么抛出。

调用一个未检查异常方法,编译器不要求必须处理这个异常。如下:

技术分享

红线是编译报错,需要捕获异常才可以。

为什么我们不需要捕获未检查异常?

因为大部分情况下未检查异常一般是程序错误,超出了我们的处理范围。应该在程序编写期间,就避免这种异常,而不是把它抛出给上层。比如我们需要处理ArrayIndexOutOfBoundsException异常吗,不需要,这是在编码阶段就需要避免出现的问题。

 

java 异常日志断言调试

标签:日志   src   文件   调用   nbsp   fbo   int   error   系统   

原文地址:http://www.cnblogs.com/xiaolang8762400/p/7045950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!