当python程序在执行期间发生错误时,如果编写了处理该异常的代码,程序将继续运行;如果未对异常进行处理,程序将停止并显示traceback,其中包含有关异常的报告。异常是使用try- except代码块处理的。告诉python发生异常进怎么办,在try-except代码块中出现异常,程序也将继续运行:显示你缩写的友好的错误消息,而不是令用户迷惑的traceback。
异常类型很多,如ZeroDivisionError,TypeError等,基类是Exception。
1.使用try -- except代码块
下面是一个示例
try:
print(5/0)
except ZeroDivisionError:
print('you cannot divide by zero!')
2.使用else代码块
当try代码块成功执行后,会再执行到else代码块中,如下所示:
try:
print(5/1)
except ZeroDivisionError:
print('you cannot divide by zero!')
else:
print('ok')
3.处于多个异常
一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:
try:
print(5/0)
except (ZeroDivisionError,TypeError):
print('you cannot divide by zero!')
4.except子句
最后一个except子句可以忽略异常的名称,它将被当作通配符使用。可以使用这种方法打印一个错误信息。
try:
print(5/0)
except TypeError:
print('TypeError!')
except :
print('you cannot divide by zero!')
5. try-finally语句
try-finally 语句无论是否发生异常都将执行最后的代码。
try:
print(5/0)
except ZeroDivisionError:
print('TypeError!')
finally :
print('这句话,无论异常是否发生都会执行。')
6.抛出异常raise
示例一,使用raise抛出
try:
try:
print(5/0)
except ZeroDivisionError:
raise #抛出异常
except Exception as e:
print(f'捕获:{e}')
示例二,指定抛出的异常类型和消息,
try:
try:
print(5/0)
except ZeroDivisionError:
raise Exception('除数不能为0') #抛出的异常类型
except Exception as e:
print(f'捕获:{e}')