java中异常的简单理解

众所周知,java的顶级异常当然就是Throwable了,Throwable(注意它是Object下面的一个类)下面有Error和Exception。Error,用于指示合理的应用程序不应该试图捕获的严重问题,所以一般java异常处理就不提及这个Error及其下面的类了。下面说说Exception:

 

Exception和Exception下的 RuntimeException 父子关系啊,差别却是相当大,——由于,Java中采用了强制异常捕捉机制,所以有了这个区分:

Exception下的 RuntimeException —不需要处理的(Unchecked exceptions)

非RuntimeException — 需要处理的(Checked exceptions)

 

 

 

 

个人感觉:

创建一个类的时候

然后创建其中方法的时候,其方法签名有throws xxxExceptioin, 那么这个xxxExceptioin就是Checked exceptions,

就是说,别地方(别的类或者本类其他方法中)调用此方法的时候,就【必须】要处理此Exception了,

 

—————— 不是这样的,这个只是java异常机制一部分而已

准确的说:

当方法M抛出,自定义的继承于runtimeexception的异常时,异常上层程序无须捕获,因为按照下面的说法——————————(捕获了除了继续向外抛以外也无能为力)

 

 

 RuntimeException 这个表示系统异常,比较严重。想处理也处理不了,或不好处理

 

 

 

http://www.java3z.com/cwbwebhome/article/article8/806.html

  Java中采用了强制异常捕捉机制,这样一方面提高了程序的可靠性,不过有时候也带来一些麻烦。比如:int i= Integer.parseInt("33");

这个我知道它不可能会抛出异常,但是不捕捉异常的话就过不了编译这关,当然这个代码没有意义的。

Java中所有异常或者错误都继承Throwable:

1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。

2.Exception:这个属于应用程序级别的异常,这类异常必须捕捉。——————————————————不处理都编译不通过的,如常见的IOException

3.RuntimeException:奇怪RuntimeException继承了Exception,而不是直接继Error, 这个表示系统异常,比较严重。

 

java中异常分两类,

一类是需要处理的(Checked exceptions), ———————— Exception

一类是不需要处理的(Unchecked exceptions)。 ———— RuntimeException

是否需要处理是指:你程序中抛出的异常客户端是否需要处理,是否有能力处理。 

 

    以用户注册来说明,每个用户有一个唯一的注册名,当用户提交注册信息时,从后台检测这个注册名已经存在,违反唯一性,这时候你可以抛出一个checked exception,

    上层程序可以捕获这个异常,并将信息提示给用户,让用户换个注册名;

如果在用户提交注册信息时,正好你的数据库宕掉了,无法对数据进行存取,这时候你就要抛出unchecked exception(例如你自定义的继承于runtimeexception的异常),

这个异常上层程序无须捕获,或者说捕获了除了继续向外抛以外也无能为力。——————————————————  这话说得太对了,感觉就是这样

 

 

 

checked ,unchecked 需要处理,不需要。。。。 容易搞混啊

 

 

NullPointerException 原来是 RuntimeException 的子类啊

 

http://www.189works.com/portal.php?mod=view&aid=47802

 

 

 

 

——菜鸟文章,仅供自己参考,勿怪。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值