java异常处理机制

一、简单原理

java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error.

  • Exception表示程序需要捕捉和处理的的异常;
  • Error表示系统级别的错误和程序无需处理的。

我们所需要关心的是Exception. Execption可以分为java标准定义的异常和程序员自定义异常2种.

  • (1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这里语法规则指的是JAVA类库内置的语义检查。
  • (2)另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是Thowable的子类。

异常处理是与程序执行是并行的.

二、主要关键字

  • java异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字。
  • try 关键字后紧跟一个花括号括起来的代码块,简称try块。同理:下面的也被称为相应的块。它里面可置引发异常的代码。
  • catch后对应异常类型和一个代码块,用于表明catch块用于处理这种类型的代码块。后还可以跟一个finally块。
  • finally块用于回收在try块里打开的物理资源,异常机制会保证finally块总被执行
  • throws关键字主要在方法签名中使用,用于声明该方法可能抛出的异常。
  • 而throw则用于抛出一个实际的异常,throw可以单独作为语句使用,抛出一个具体的异常的对象
Try{

    //可能发现异常的语句块

}catch(异常类型 e){

   //发生异常时候的执行语句块

} finally{

  //不管是否发生异常都执行的语句块

}

三、Error和Exception的区别

Java中的Error和Exception都是来之Throwable 这个Class的,是他的SubClass,

  • Error:是系统中的错误,程序员是不能改变,处理的,在程序编译的时候出现的错误.只有通过修改程序才能修正Error.
  • Exception:是在程序运行的时候捕捉的错误,是可以处理的异常.
  • 语法是:
try{}

          catch(Exception 名字){}                 

           finally

                  {进行资源的清理工作: 比如关闭打开的文件:    删除临时的文件;   ....}

Exception:它也分两种:RuntimeException(是经常出现的错误可以不catch)和其他Exception(是必须要catch的,这样程序才能继续,像某个方法里面有throw IoException).

JAVA语言如何进行异常处理

执行步骤:

1.如果执行try块中的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给java运行环境,这个过程称为抛出(throw)异常。
2.当java运行环境收到异常对象时,会寻找能处理该异常对象的catch块,如果找到合适的cathc块并把该异常对象交给catch块处理,那这个过程称为捕获(catch)异常;如果java运行时环境找不到捕获异常的catch块,则运行时环境终止,jav程序也将退出。

注意

注意1:不管程序代码块是否处于try块中,甚至包括catch块中代码,只要执行该代码时出现了异常,系统都会自动生成一个异常对象,如果程序没有为这段代码定义任何catch块,java运行环境肯定找不到处理该异常的catch块,程序肯定在此退出。
注意2:try块后可以有多个catch块,try块后使用多个catch块是为了针对不同异常类提供的不同的异常处理方式。当系统发生不同意外情况时,系统会生成不同的异常对象,java运行时就会根据该异常对象所属的异常类来决定使用哪个catch块来处理该异常。
注意3:通常情况下,如果try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块被执行,除非在循环中使用类continue开始下一次循环,下一次循环又重新运行了try块,这才可能导致多个catch块被执行。
注意4:进行异常捕获时,一定要记住先捕获小的异常,再捕获大的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值