java中的异常处理

1、finally块中的代码什么时候被执行

(1)java语言的异常处理中,finally块的作用就是为了保证无论出现什么情况,finally块理的代码都是一定会被执行的。

(2)如果try-finallycatch-finally中都有return,那么finally块中的return语句将会覆盖别处发return语句,最终返回到调用者那里的是finally中的return的值。

(3)由于一个方法内部定义的变量都存储在栈中,当这个函数结束后,其对应的栈就会被回收,此时在其方法体中定义的变量将不存在了,因此return返回时不是直接返回变量的值,而是复制一份,然后在返回。

(4)对于基本类型的书,在finally块中改变return的值对返回值没有任何影响,而对应用类型的数据会有影响。

(5)程序在执行到return语句时会首先将返回值存储在一个指定的位置,其次去执行finally块,最后再返回。

2、 情况不需要执行finally块中的代码;

(1)、当程序在进入try语句块之前就出席那异常时,会直接结束,不会执行finally块中的代码。

(2)、当程序在try块中强制退出时,也不会去执行finally块中的代码。

3、异常的分类

1)、异常是指:程序在运行时所发生的非正常情况或者错误,当程序违反了语义的规则时,Java虚拟机就会将出现的错误表示为一个异常抛出。(异常包括:程序执行的过程中遇到的事先没有预料到的情况)

2)、异常的目的:主要是想提高程序的安全性和鲁棒性。

3)、程序出现异常时,可以使throw抛出的有:ErrorThrowableExceptionRuntimeException

4)、异常分为:错误(error)和异常(exception

1)、错误(error

      Error表示程序运行的时候出现的错误,并且该错误是不可恢复的,一般error是属于error层的错误,并且会导致程序终止。如:ThreadDeath

2)、异常(exception

aException表示的是可恢复的异常,java编辑器一本都是可以捕捉到的。

bexception(异常)分为两种:检查异常和运行时异常

a)、检查异常:

    检查异常时程序中最经常遇见的异常;例如:IO异常和SQL异常,这些异常一般都会发生在编译阶段,并且java编译器会强制程序捕捉这种类型的异常,即把可能出现的异常会放到try-catch代码块中去进行处理。(try块中存放异常的代码;catch块中存放的是处理异常的代码。)

b)、运行时异常:

    运行时异常,编译器不会强制对其进行处理。一般是由JVM进行处理的。如:空指针异常、数组越界异常、缓冲区溢出异常等;

当程序中出现运行时异常时,系统会把异常一直往上层抛出异常,直到有吹异常的代码位为止。

1)、如果是多线程就是Thead.run()方法抛出异常。

2)、如果是单线程,就用main()方法抛出异常。这个线程就会退出,或者整个程序就会退出。

所以如果不对运行时的异常进行处理,后果是非常严重的,一旦发生,要么线程终止,要么是主线程终止。

在进行异常捕获时,先捕获子类,在捕获父类的异常信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值