第九章 yi'chang
2019-04-01 本文已影响0人
帅气的Lucky
一 概念
-
需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行
-
主体结构
try: #可能会发生异常的代码块 except 可能会发生的异常: #处理异常
-
一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
try: print(x) except NameError as e: print(e) except ValueError as e: print(e)
-
一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如
except (RuntimeError, TypeError, NameError) as e: pass
使用异常的例子
while True:
try:
x = int(input("Please enter a number: "))
break
except ValueError:
print("Oops! That was no valid number. Try again ")
二 else
try except 语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。这个子句将在try子句没有发生任何异常的时候执行**
格式:
try……except……else
try:
代码块
except 错误码 as e:
语句n
else:
语句e
注意:else语句可有可无
try:
1+2
except TypeError as v:
print(v)
else:
print('x')
作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理
三 finally
try 子句里面有没有发生异常,finally 子句都会执行
def divide(x, y):
try:
result = x / y
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print("executing finally clause")
divide(2, 1)
四 抛出异常
Python 使用 raise 语句抛出一个指定的异常。例如:
raise NameError('HiThere')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: HiThere