首页 > 新手问题:异常处理的问题

新手问题:异常处理的问题

想问一个普遍通用的问题,请问异常处理时
在什么情况下,应该抛出让外部调用者去处理异常?
在什么情况下,应该由自己处理异常? 以python为列: ···python

try:  
  异常语句  
except Exception as e:  
  print e  #自己处理异常  
  raise    #让调用者处理异常

这个取决于你需要在哪一级处理这个异常

  1. 如果你可以在最底层就处理掉异常,那就可以直接处理掉
  2. 如果上层的代码需要获取这个异常进行不同的处理,那就抛出去

对于你问的问题,实际上是一个异常处理策略的问题。至于以何种语言为例,道理都是一致的。说说我的看法:


这个不是看情况吗。如果 Exception 出现的概率比较大,而且是可以预测的(比如文件无法打开,输入不符合要求之类的),当然就就地解决了,这类异常往往不能算真的“异常”,也是系统功能的一部分。如果是不可以预测的其他异常就 raise 好了。

【热门文章】
【热门文章】