python核心编程课后题第二版第十章264页
10-6.改进的open()。为内建的open函数创建一个封装,使得成功打开文件后,返回文件句柄;若打开失败则返回None,而不是生成一个异常。这样你打开文件时就不需要额外的异常处理语句。
def safe_open(name): try: f = open(name) return f except IOError: return None f = safe_open('test1.txt') print f
10-8.改进的raw_input()。本章的开头,我们给出了一个“安全”的float()函数,它建立在内建函数float()上,可以检测并处理float()可能会引发的两种异常。同样,raw_input()函数也可能会生成两种异常,EOFError(文件末尾EOF,在Unix下是由于按下了CTRL+D,在Dos下是因为CTRL+Z)或是KeyboradInterrupt(取消输入,一般是由于按下了CTRL+C)。请创建一个封装函数safe_input(),在发生异常时返回None。
def safe_raw_input(hi): try: return raw_input(hi) except (EOFError, KeyboardInterrupt): return None a = safe_raw_input('hi>>') print a