try-except
该语句用来处理异常情况。
try块中包含可能抛出异常的语句,而except块则用来处理异常。如果try块中出现了异常,那么程序将跳过try块中剩余的语句,转而执行except块的语句。
try:
? ? 可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
? ? 处理异常的代码块1
except [ (Error3, Error4, ... ) [as e] ]:
? ? 处理异常的代码块2
except ?[Exception]:
? ? 处理其它异常
该格式中,[ ] 括起来的部分可以使用,也可以省略。其中各部分的含义如下:
(Error1, Error2,...) 、(Error3, Error4,...):其中,Error1、Error2、Error3 和 Error4 都是具体的异常类型。显然,一个 except 块可以同时处理多种异常。
[as e]:作为可选参数,表示给异常类型起一个别名 e,这样做的好处是方便在 except 块中调用异常类型(后续会用到)。
[Exception]:作为可选参数,可以代指程序可能发生的所有异常情况,其通常用在最后一个 except 块。
从try except的基本语法格式可以看出,try 块有且仅有一个,但 except 代码块可以有多个,且每个 except 块都可以同时处理多种异常。
以下是一个基础的例子:? 当输入数字时,输出该数字的整型数字,否则,提示输入有误 ,请重新输入。? ? ?
try:
a = input("请输入数字:") #代码空四格
num = int(a)
print("获得的数字为:", num)
except: #此行代码必须与try对齐
print("输入有误,请重新输入!") #代码空四格,如果输入非数字,比如输入字母,将会执行此行代码
以下为pycharm界面实例:
?
?另外,还有
try:
? ? #执行try代码
except:
? ? # 执行应对异常发生时的代码1
except:
? ? # 执行应对异常发生时的代码2
else:
? ? #try未发生异常后,执行的语句
try:
? ? #执行try代码
except:
? ? # 执行应对异常发生时的代码
else:
? ? #try未发生异常后,执行的语句
finally:
? ? #无论异常有无发生,finally 子句都将执行
以下为实例代码:
a=10
b=2
try:
result = a / b
except ZeroDivisionError:
print("除数不能为0!")
else:
print("结果为:", result)
finally:
print("最终执行此语句")
运行结果为:?
结果为: 5.0
最终执行此语句
当b=0时,运行结果为:
除数不能为0!
最终执行此语句
以下附图为pycharm中执行实例情况:
?