Java异常处理

Java异常处理实际上是比较简单的,这里也就是简单的对其作一个总结。Java中处理异常情况有两大类,一类是java.lang.Error,另一类是java.lang.Exception。Error用来指示程序发生的严重错误,是不可捕获的错误,比如在java的方法中使用了递归,但是又没有给出递归的退出条件,很明显最后程序会因为内存溢出溢出而崩溃,这时JVM就会报出一个错误提示,并且无法在代码中通过catch方法来捕获该错误进而处理,只能调整程序中的错误代码来解决问题。Exception就是可以捕获的错误,可以通过catch捕获错误后后让程序继续运行,当然如果不捕获,在发生Exception的地方程序就会停止运行。

1、Error和Exception的关系

Error和Exception都是对异常的处理机制,它们都继承Throwable接口,也就是发生错误都会抛出。不同的是,Error抛出错误不能被捕获处理,而Exception抛出的错误能够被捕获并处理。

这里写图片描述

2、Exception的分类

因为Error抛出的错误不能进行处理,所以只能写代码时候避免此类错误发生,在实际运用中Error的使用频率远不如Exception来的高。这一小节主要介绍下Exception的分类问题,Exception主要分为运行时异常以及编译时异常(可检查异常)

运行时异常指RuntimeException及其子类异常,运行时异常不一定需要在编译时对异常进行处理,也就是当B方法中throw了一个运行时异常,A方法来调用B方法,这是不一定需要强制在A方法中通过try/catch语句来捕获该异常。而编译时异常其实就是Exception的子类,但不是RuntimeException的子类(RuntimeException继承自Exception)的异常,编译时异常需要显示的强制性的在代码中通过try/catch语句来处理异常,同样通过上面的例子来说明,B方法throw一个编译时异常(这个需要在B方法中throws该异常,不然编译时要报错),A方法调用B方法时得通过try/catch语句来处理该异常,或者同样在A方法中通过throws将该异常抛到上层调用方法。通过这个例子我们知道编译时异常是敲代码时不可忽视的异常,必须进行一定的处理(捕获或者抛出),不然编译就会报错,而运行时异常没有这么麻烦,但是运行时异常不处理的话依然会导致程序中断,从某种意义上说,编译时异常起到了,强制提醒程序员处理异常的作用。

3、Excepiton五个关键字

Exception有五个关键字,分别是try、catch、finally、throw、throws,其中try/catch两个关键字用来捕获(try)处理(catch)异常,而finally则指try中捕获了异常程序中断后,不执行try中后续代码,但最后会执行到finally中去,也就是说finally中的代码一定会执行,所以一般在finally代码块中做一些释放资源类的操作。

throw和throws作用都是抛出异常,但是用法却完全不同。throw在方法体中使用,其抛出的是异常的对象实例,而throws用来方法定义名之上,抛出的是异常类。

以上就是Java中关于异常使用的基本知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值