tryexc1.py
#!/usr/bin/env python
#
# Example of exception handling
#
import sys
def safe_open(fn, mode="r"):
"Open file and return None if open fails"
try:
f = open(fn, mode)
except:
f = None
return f
def safe_int(s):
"Convert string to integer, return None if bad string"
try:
n = int(s)
except:
n = None
return n
# Begin program
rc = 0
line = None
if len(sys.argv) != 2:
sys.stderr.write("Usage: %s <filname>\n" % sys.argv[0])
rc = 1
else:
user_fn = sys.argv[1]
user_f = safe_open(user_fn)
line = None
if user_f == None:
sys.stderr.write("Failed to open %s\n" % user_fn)
rc = 2
else:
try:
line = user_f.readline()
except:
sys.stderr.write("Failed to read line from %s\n" % user_fn)
rc = 3
if rc == 0:
n = safe_int(line)
if n == None:
sys.stderr.write("Failed to convert to int line: %s\n" % line)
rc = 4
else:
sys.stdout.write("n=%d\n" % n)
sys.exit(rc)
Generated by GNU enscript 1.6.4.