# David Kauchak # 2/24/25 # # Some examples illustrating error handling using: # - isinstance # - try-except blocks def calc_prob_attempt(successes, trials): return float(successes)/trials def calc_prob_better(successes, trials): if isinstance(successes, int) and isinstance(trials, int): return float(successes)/trials else: print "calc_prob_better must be called with ints!" def calc_prob_even_better(successes, trials): if isinstance(successes, int) and isinstance(trials, int): try: return float(successes)/trials except: print "calc_prob_even_better had a problem :(" else: print "calc_prob_even_better must be called with ints!" def calc_prob(successes, trials): if isinstance(successes, int) and isinstance(trials, int): try: return float(successes)/trials except (ZeroDivisionError): print "trials must be non-zero!" else: print "calc_prob must be called with ints!" def calc_prob2(successes, trials): try: return float(successes)/trials except (ZeroDivisionError): print "trials must be non-zero!" except: print "calc_prob2 had a problem :("