try except捕获异常
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它
语法:
try:
可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
处理异常的代码块1
except [ (Error3, Error4, ... ) [as e] ]:
处理异常的代码块2
except [Exception]:
处理其它异常`
捕获指定异常,交给指定except分支处理
举个例子:
def ex2():
try:
a = int(input("输入被除数:"))
b = int(input("输入除数:"))
c = a / b
print("您输入的两个数相除的结果是:", c)
except ValueError:
print("程序发生了数字格式异常")
except ArithmeticError:
print("程序发生了算术异常")
except:
print("未知异常")
print("程序继续运行")`
获取特定异常的有关信息
通过前面的学习,我们已经可以捕获程序中可能发生的异常,并对其进行处理。但是,由于一个 except 可以同时处理多个异常,那么我们如何知道当前处理的到底是哪种异常呢?
其实,每种异常类型都提供了如下几个属性和方法,通过调用它们,就可以获取当前处理异常类型的相关信息:
- args:返回异常的错误编号和描述字符串;
- str(e):返回异常信息,但不包括异常信息的类型;
- repr(e):返回较全的异常信息,包括异常信息的类型。
try:
1/0
except Exception as e:
# 访问异常的错误编号和详细信息
print(e.args)
print(str(e))
print(repr(e))
raise
抛出异常
例子:
def ex1():
a1 = input("输入名字(2-5位):")
if len(a1)<2 :
raise ValueError("名字小于2位")
elif len(a1)>5:
raise ValueError("名字大于5位")
else:
print('已输入')
if __name__ == '__main__':
ex1()
网友评论