【发布时间】:2015-03-17 09:05:15
【问题描述】:
如果我运行以下 Python 脚本并假设我的文件读取将失败,IOError 处理程序将引发自定义异常,但我不确定应该如何处理引发的自定义异常。有人可以帮忙吗?
class CustomIOError(IOError):
def __init__(self, msg):
super(CustomIOError, self).__init__()
self.error_msg = msg
try:
# Open file to read
with open(fileName) as f:
for line in f:
print line,
except IOError :
raise CustomIOError('Exception message')
# except CustomIOError :
# sys.exit(0)
另外,如果Python支持多态,为什么我不能直接处理基类的异常,用派生类的异常处理程序?
try:
raise IOError
except CustomIOError:
pass
这不起作用,程序执行将在打印一部分堆栈跟踪后终止。
【问题讨论】:
-
如果你
raise CustomIOError你应该except CustomIOError。
标签: python polymorphism