Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions students/aaron/homework_lesson5/except_exercise.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/usr/bin/env python3

"""
An exercise in playing with Exceptions.
Make lots of try/except blocks for fun and profit.

Make sure to catch specifically the error you find, rather than all errors.
"""

from except_test import fun, more_fun, last_fun


# Figure out what the exception is, catch it and while still
# in that catch block, try again with the second item in the list
first_try = ['spam', 'cheese', 'mr death']

try:
joke = fun(first_try[0])
except NameError:
joke = fun(first_try[1])

# Here is a try/except block. Add an else that prints not_joke
try:
not_joke = fun(first_try[2])
except SyntaxError:
print('Run Away!')
else:
print(not_joke)

# What did that do? You can think of else in this context, as well as in
# loops as meaning: "else if nothing went wrong"
# (no breaks in loops, no exceptions in try blocks)

# Figure out what the exception is, catch it and in that same block
#
# try calling the more_fun function with the 2nd language in the list,
# again assigning it to more_joke.
#
# If there are no exceptions, call the more_fun function with the last
# language in the list

# Finally, while still in the try/except block and regardless of whether
# there were any exceptions, call the function last_fun with no
# parameters. (pun intended)

langs = ['java', 'c', 'python']

try:
more_joke = more_fun(langs[0])
except IndexError as e:
more_joke = more_fun(langs[1])
else:
more_joke = more_fun(langs[2])
finally:
last_fun()
41 changes: 41 additions & 0 deletions students/aaron/homework_lesson5/except_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env python3

"""
silly little test module that is designed to trigger Exceptions when
run from the except_exercise.py file
"""

import time

conclude = "And what leads you to that conclusion?"
district = "Finest in the district, sir."
cheese = "It's certainly uncontaminated by cheese."
clean = "Well, it's so clean."
shop = "Not much of a cheese shop really, is it?"
cust = "Customer: "
clerk = "Shopkeeper: "


def fun(reaper):
if reaper == 'spam':
print(s)
elif reaper == 'cheese':
print()
print('Spam, Spam, Spam, Spam, Beautiful Spam')
elif reaper == 'mr death':
print()
return('{}{}\n{}{}'.format(cust, shop, clerk, district))


def more_fun(language):
if language == 'java':
test = [1, 2, 3]
test[5] = language
elif language == 'c':
print('{}{}\n{}{}'.format(cust, conclude, clerk, clean))


def last_fun():
print(cust, cheese)
time.sleep(1)
import antigravity