关于java 异常处理的学习

首先,基础知识,java的异常的基类为Throwable,它的两个子类为Error和Exception

Error指错误,而Exception就是我们要处理的异常了.

异常又分为运行期异常和编译期异常。


现在我们就讨论对异常的处理。

一.在哪里处理 。throws vs try catch

我们在学习时,有时会看到这两种形式


public void 方法名() throws Exception{};


也会看到在方法体中的这种形式

public void 方法名(){

try{

//代码块

}

catch(Exception e)

{

//处理

}

}

那么这两种形式有什么区别呢?

throws的形式时,如果这个方法在执行的过程中出现了异常,那么方法停止,抛出异常,此时异常的处理是由调用该方法的上一级(如main方法)处理

而try catch则是在方法内部对异常进行处理。所以具体用哪一种,还得看需求。


二.try catch finally的执行顺序,还有在加入return时的顺序

1.finally无论什么情况都会执行,就算try或者catch中有return,也会执行

2.在发生异常后,一般就会跳到下一个(顺序就是try,catch,finally),若finally中也发生异常,则会报错


这是我自己的两点体会,剩下关于return的网上例子很多,就不多说了


三。是不是把代码块全部try catch就行了呢

这几天我在写爬虫程序时,一直在思考这个问题,是不是把全部的代码包裹起来,最后写一个catch,输出错误信息就行了呢?

首先爬虫有很多地方可能出现异常,如请求超时,500错误,提取元素的正则写的不对,格式转化出错等等。这些错误,出现一个就会报错,我们不能用一个catch解决全部的

问题,应当在可能出现的地方做一个局部的try catch,然后在抓取时进行日志记录,这样才知道哪条信息抓取时出错了,而不影响其他信息的抓取。

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>