try catch 和throws的分析

程序中碰到异常问题,我们到底是用try-catch还是用throws呢?到底什么时候用try-catch,什么时候用throws呢?

我的观点是:哪种处理方式对你程序更有利就用哪种!!!

try-catch是用来处理别人抛出的exception的,当你觉得你有足够的能力以及足够的信息处理该方法中可能出现的异常时,就使用它。而当你觉得你没有能力处理时,你就要首先声明该方法可能出现异常,抛出异常,将该异常交给调用者处理,当调用者也没能力处理时,它又一层一层往上抛,直到主函数解决异常为止。我们需要明白的是:throws抛出的异常最终都是在try-catch中解决的。这样就感觉有点像:老板和打工仔的关系。老板(throws)就只管分发任务,而就难为了try-catch了。

下面请看下我之前写的代码:

public void run(){

while(true){

readMsg();}

}

public void readMsg(){

try{

String message=brd.readLine();

}catch(Exception e)}

我直接在readMsg()方法中使用了try-catch,而没想过会给调用者带来什么影响,从这个例子明显可以看出:当服务器与客户机由于网络问题时,就会照成死循环,因为try-catch捕获到异常时,并不会终止下面程序的运行,所以就不会跳出循环,所以在此处用throws会好些。

当然,不管你使用其中的哪种处理方式,必须让它们各尽其职,让其有所担当,必须要基于你程序的健壮性去考虑,具体用哪种方式,需要具体分析。但要记住一句话:当你有能力解决异常时,就用try-catch,而没能力时,就throws吧!就像学习一样,当你有能力解决某个难题时,你就自己解决,而当你冥思苦想也不知道怎么办时,就去问你的同学或老师吧!

猜你喜欢

转载自willyii.iteye.com/blog/1143719