java异常处理

                                                                                 java异常处理机制
                   

异常的概念和java异常体系:
异常时程序运行过程中出现的错误。java把异常当做对象来处理,并且定义了一个基类java.lang.Throwable
作为所有异常的超类。异常分为两大类,错误Error和异常Exception.
          
Throwable类是所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常。Exception又
分为运行时异常(RuntimeException)和非运行时异常。


Error:程序无法处理的错误,有OutOfMemoryError、ThreadDeath等,当这些错误发生时java虚拟机
一般会选择终止线程。
Exception是程序本身可以处理的异常,分为运行时异常和非运行时异常,程序中应该尽可能去处理
这些异常。


异常的捕获和处理:
有关的五个关键字——try catch finally throws throws\


异常处理的基本语法格式:
try{
//可能出现异常的代码部分
}
       catch(异常类型 异常变量){
//执行异常操作
}
       catch(异常类型 异常变量){
//执行异常操作
}
        …
 
       finally{
    //处理完try与catch操作后的收尾操作,异常统一出口
,异常发生,方法返回前,总是要执行的代码




try语句块:表示要尝试运行代码,try语句块中的代码受异常监控,其中的代码发生异常时,会抛出
异常对象。


catch语句块:捕获try语句块中的异常并进行处理。当try语句块中出现异常时,catch会捕获发生的异常,并且和自己所
带的Throwable类型的参数进行匹配,若匹配,则执行catch语句块中的代码,并且将catch语句块的参数(异常变量)指向所抛出
的异常对象。catch语句可以有多个,用来匹配多个异常中的一个,一旦匹配上以后,就不再尝试匹配
其他catch语句块。


finally语句块是紧跟在catch语句块之后,总是在方法返回前执行,不管try语句块是否发生异常。




try语句不能单独存在,可以和catch、finally组成的try…catch、try…catch…finally、try…finally三种结构,catch语句可以有一个或者多个,但是try、catch、finally不能单独存在


try、catch、finally三个代码块中的语句变量独立存在,不能相互访问


多个catch语句块时,是以由上到下的顺序进行匹配,当匹配到其中一个catch语句块时,就执行该catch语句块
中的代码,而其他catch语句块将不会被执行。


throw关键字:用于方法体内部,用来抛出一个Throwable类型的异常。如果所有方法都层层上抛,则该异常最终将会由java虚拟机
处理,打印出异常信息和堆栈信息。


throws关键字:用于方法体外部的方法声明部分,用来声明方法可能会抛出某些异常
public static void test()throws Exception{
  //声明方法抛出一个检查异常
  throw new Exception("test方法中的Exception");
}


PS:虽然finally语句块都要被执行,但是当try语句块发生错误时,则程序会被终止在try语句块,
此种情况下,finally语句块将不会执行。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值