函数应该返回一个customException还是一个String来暗示发生了错误?

时间:2015-11-04 01:34:12

标签: python

我正在尝试理解什么是更好的设计选择,当我们在一个类中执行大量功能时应该返回字符串或在特定检查失败时引发自定义异常。

示例:

假设我有一个类: -

#Division only for +ve numbers
class DivisionError(Exception):
 pass


class Division(object):
 def __init__(self, divisor, dividend):
   self.divisor = divisor
   self.dividend = dividend

 def divide():
   if self.divisor<0:
     #return "-ve_divisor_error"
     or 
     #raise DivisonError.divisorError

   if self.dividend<0:
     #return "-ve_dividend_error"
     or 
     #raise DivisionError.dividendError

   return self.dividend/self.divisor
  1. 返回自定义字符串或引发异常最好,特别是在编写python库时。
  2. 我们是否需要为我们提出的所有Custom异常编写单独的类,或者是否有办法在单个customexception类上创建某种枚举?

2 个答案:

答案 0 :(得分:1)

异常。几乎100%的时候python中的成语是抛出错误

答案 1 :(得分:1)

更多的pythonic方式是抛出异常。其中一个蟒蛇咒语是EAFP: Easier to ask for forgiveness than permission。如果您浏览标准库,您会看到try / except到处都是。