Python/异常
外观
< Python
try: 語句 except (異常型態1,異常型態2,...): 語句 except: # Any other exception 語句 raise #重新抛出異常 else: # 必须在所有except子句之后,如果try子句没有抛出异常则执行。 語句 finally: 語句 #不管 try 子句里面有沒有發生異常,finally 子句都會執行。沒有任何的except截獲的異常會在 finally 子句執行後再次被抛出。
语义为:首先执行try子句内的语句。如果没有异常发生,忽略except子句,执行其后的语句。如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略;如果异常的型态和 except 之后的名称相符,那么对应的except子句将被执行。 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
with 语句保证对象在使用完之后一定会正确的执行它的清理方法,无论执行中是否发生了异常。
raise语句用于故意抛出一个异常
raise TypeError raise ValueError, "I can't cope with a negative number here."
定制的异常类型:
class CustomException(Exception): def __init__(self, value): self.parameter = value def __str__(self): return repr(self.parameter)