I noticed that if I call a function that throws an error, I can catch it from the caller, instead of catching it in the function. Is this is what is known as "errors bubbling up?" Also, is this how you're supposed to do it?
*** Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32. *** '''Print a table of random numbers, given min, max, rows, and columns''' from random import randint def make_table(minimum, maximum, rows, columns): for row in range(rows): print() for column in range(columns): print(randint(minimum, maximum), end = ' ') def get_input(): inp = input("Enter minimum, maximum, rows, and columns, separated by commas: ") inps = inp.split(',') try: minimum = int(inps[0]) maximum = int(inps[1]) rows = int(inps[2]) columns = int(inps[3]) return minimum, maximum, rows, columns except ValueError as err: print("non-integer entered", err) return None except IndexError as err: print("You didn't enter enough values.", err) return None vals = get_input() if vals: minimum, maximum, rows, columns = vals try: make_table(minimum, maximum, rows, columns) except ValueError as err: # CATCH FUNCTION ERROR HERE INSTEAD OF IN FUNCTION print("Enter min before max.") else: print('Nothing to do.') -- Jim _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor