Hacker News new | past | comments | ask | show | jobs | submit login

Is this really a worthwhile distinction? Using the first example from the Wikipedia article on duck typing, I have a choice between exploding when given invalid values:

  def calculate(a,b,c):
    return (a+b)*c
or failing silently when given invalid values, which will often cause some other piece of code to explode, or at the worst cause some misbehavior that is difficult to detect:

  def calculate(a,b,c):
    try:
      a=a+b
    except:
      pass
    try:
      a=a*c
    except:
      pass
    return a
or

  def calculate(a,b,c):
    try:
      return (a+b)*c
    except:
      return None
I would prefer to just not be in the situation of choosing what to do with invalid values in the first place.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: