关于JAVA异常

Java提供了两类主要的异常:runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的,而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。  

   但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理 。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去 处理过NullPointerException异常 ,它就是运行时异常,并且这种异常还是最常见的异常之一。
 
    以前一直没仔细想过出现运行时异常了系统会怎样工作 ,最近在一个模块排错时,才无意中发现了系统是如何处理运行时异常 。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码 。如果没有处理块,到最上层,如果是多线程就由Thread .run()抛出,如果是单线程就被main()抛出。抛出之后 ,如果是线程,这个线程也就退出了。如果是主程序抛出的异常 ,那么这整个程序也就退出了。
* Runtime exceptions:

在定义方法时不需要声明会抛出runtime exception;
在调用这个方法时不需要捕获这个runtime exception;
runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。

* Checked exceptions:

定义方法时必须声明所有可能会抛出的checked exception;
在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;
checked exception是从java.lang.Exception类衍生出来的。 
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值