一、使用try...except语句捕获运行时异常
1、格式:
try:
语句块A
except:
语句块B
2、执行流程
执行可能触发运行时错误(如计算时分母为零、变量未定义、数据类型错误)的语句块A,一旦有语句触发异常,则跳转到语句块B执行。
3、使用说明
(1)语句块可以是一条语句,也可以是多条语句。语句块A可与try同行,语句块B可与except同行。此时多条语句必须使用";"字符分隔。
(2)except子句之后可以指定异常的类型。未指定时捕获所有异常。如:
try:
x=a/3
except NameError as e:
print(e) #其中NameError为异常的类型,e存储捕获到的异常信息
(3)try可以匹配多个except子句(每个子句需指定捕获特定的异常)。
(4)可以使用else子句指定未触发异常时需运行的语句。如:
try:
x=int(input())
except:
print("输入的不是一个整数!")
else:
print(f"{x:03d}"
(5)可以使用finally子句指定无论是否触发异常均需运行的语句。如:
try:
x=int(input())
except:
x=6
finally:
print(x)
特别提示:
(1)try块中包含break、continue或者return语句时,finally中的语句也会被执行。
(2)try与finally搭配时,可以不使用except部分,但触发异常时会导致程序运行终止。
二、使用assert语句触发AssertionError异常
1、格式:
assert A[, B]
2、作用:
其中A为必须满足的条件,否则会触发AssertionError异常。B为触发异常后的提示信息。可缺省。
示例:
try:
x=int(input())
assert 0<=x<=10,"只能输入[0,10]上的整数"
except Exception as e:
print(e)
else:
print(x%10,x//10%10)
三、使用raise语句触发异常
1、格式:
raise ex
2、作用:
抛出异常。ex指定异常类型。上例中assert语句也可写为:if x<0 or x>10:raise ValueError("输入的不是[0,10]上的整数")

