Java Exception


异常体系(图片转载)

在异常体系中有一个父类,就像Object是所有类的父类一样,Throwable就是所有异常的父类。它只有两个子类分别叫做Error和Exception,它们又称作错误和异常。

Exception——异常

Exception异常类又可以分为运行时异常(RuntimeException)和非运行时异常。

运行时异常

运行时异常如名字一样,是在运行是才会影响程序运行的异常。所以,在编译过程中是不会像非运行时异常一样直接报错的。因此,运行时异常又被称之为不检查异常(Unchecked Exception)

运行时异常一般是因为逻辑错误导致的所以,在编写代码的过程中是可以处理,也可以不处理。 
通常的运行时异常都是Runtime Exception的类及其子类。

常见的运行时异常有:

  • ClassCastException(类型转换异常)
  • IndexOutOfBoundsException(数组越界)
  • NullPointerException(空指针)
  • ArrayStoreException(数据存储异常,操作数组时类型不一致)

非运行时异常

非运行时异常也叫检查异常(checked Exception),它是在编译、编写代码时就会提示的异常。出现这种异常必须被捕获(try-catch)或者抛出(throw、throws)。

一般的非运行时异常是Exception的子类

常见的非运行时异常有:

  • IOException
  • SQLException
  • 用户自定义的Exception异常,一般情况下不自定义检查异常。

Error——错误

错误一般是由程序员编写时,没有注意相关情况主观导致的。当错误发生时,JAVA虚拟机一般情况下会停止线程的运行。 
例如:在申请数组空间是,申请的空间大于剩余内存空间,造成堆内存泄漏。

异常的处理

关于异常的处理一般有try、catch、finally、throw以及throws等5个关键词。 
try:运行的代码,需要监控的代码块。当出现异常后会将异常抛出。 
catch:当捕捉到异常后,它会和自己的异常进行匹配,如果匹配就会运行就会运行catch中的代码。在使用过程中可以有多个 
finally:无论是否捕捉到异常,其中的代码都会运行。使用时一组try-catch有且仅有一个finally。 
throw:在方法体内部抛出异常,在方法头部也需要声明可能会抛出的异常种类,如果抛出检查异常,则其调用者就必须处理异常。 
throws:在方法体外部抛出异常,其调用者同样需要处理该异常(捕获或者抛出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值