异常处理

1. 什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

异常是Python对象,表示一个错误。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理:

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

2.try except finally

语法格式:

try:

正常的操作

......................

except:

发生异常,执行这块代码

......................

else:

如果没有异常执行这块代码

实例1:

try:

print(a) # 没有a这个变量

except:

print('错误!!')

else:

print('一切正常!!')

运行结果如下:

错误!!

try:

print(a) # 没有a这个变量

except:

print('错误!!')

finally:

print('不管异常与否,都要给我打印!')

运行结果如下:

错误!!

不管异常与否,都要给我打印!

3.捕获详细异常

实例1:

try:

print(a)

except NameError as e:

print(e)

except TypeError as e:

print(e)

输出结果如下:

name 'a' is not defined

实例2:

try:

num = '1' - 5

print(a)

except NameError as e:

print(e)

except TypeError as e:

print(e)

运行结果如下:

unsupported operand type(s) for -: 'str' and 'int'

4.用户自定义异常:

通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。

在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。

实例:

class MyError(Exception): # 必须要继承于Exception

def __init__(self,age):

self.age=age

def ag():

age=int(input('输入年龄:'))

if age<=0 or age>100:

raise MyError('年龄只能在0到100岁之间')

try:

ag()

except MyError as e:

print(e)

输出结果如下:

输入年龄:200

年龄只能在0到100岁之间

原文地址:https://www.cnblogs.com/liangzb310/p/11027029.html