python提供了非常重要的异常处理功能,来处理程序运行中出现的错误或异常。
使用异常处理的代码结构如下:
try: pass # 执行代码正文 except ImportError as e: # 若出现ImportError,打印错误内容;跳转执行finally。 print(e) except IOError as e: # 若出现IOError,打印错误内容;跳转执行finally。 print(e) except Exception as e: # 若出现其他错误或异常,打印错误内容;跳转执行finally。 # Exception是所有错误类的基类 print(e) else: # 若上述正文未发生异常或错误,执行这里,再执行finally pass finally: # 最后,无论是否发生异常或错误,都归结执行这里。 pass
注意,异常和错误有许多分类,Exception是所有错误类的基类,其他都是派生类。
data = input('passwords:') # input:'fewf' # 使用异常处理 try: print(int(data)) except ValueError as e: print('输入错误') except Exception as e: # Exception是所有错误类的派生类 print(e)
除了解释器触发异常和错误外,代码也可以主动触发异常。
一切事物皆对象,类也是一个对象。对象类内含有特殊成员__str__(),当print或者str时被调用。
主动触发异常和错误,相当于调用对象类中的__str__()。
# 主动触发异常 data = input('passwords:') # input:'fewf' try: print(int(data)) raise Exception('输入错误') except Exception as e: print(e) # 主动触发异常,相当于调用__str__() class A: def __init__(self,data): self.data = str(data) def __str__(self): return self.data a = A(123) print(a)
浙公网安备 33010602011771号