python异常机制

python异常处理机制

1.1python的内置异常

当我们在运行代码的时候一旦程序报错,就会终止运行,并且有的异常是不可避免的,但是我们可以对异常进行捕获,防止程序终止.

  • python的内置异常是非常强大的,有很多的内置异常,向用户传递异常信息.BaseException是所有异常的基类,但用户定义的类并不直接继承BaseException,所有的异常类都是从Exception继承,且都在exceptions模块中定义.

1.2异常的捕获

当程序发生异常的时候,我们可以进行捕获,然后处理异常,python处理异常通常使用try...except...结构,把可能出现的错误放在try里面,用except来处理异常

1.3捕获异常

try:
	可能出错的代码
except:
	如果有异常处理的代码

1.4捕获多个异常

try:
     <语句>
 
except (<异常名1>, <异常名2>, ...):
 
      print('异常说明')

1.5第二种捕获多个异常

try:
     <语句>
 
except <异常名1>:
 
      print('异常说明1')
 
except <异常名2>:
 
      print('异常说明2')
 
except <异常名3>:
 
      print('异常说明3')

1.6当没有异常的时候还想处理其他的逻辑这是就用到了else

try:
     <语句>
 
except <异常名1>:
 
      print('异常说明1')
 
except <异常名2>:
 
      print('异常说明2')
 
else:
 	在上面的代码没有异常的情况下处理的逻辑

1.7 异常中finally

str1 = 'hello world'
try:
    int(str1)
except IndexError as e:
    print(e)
except KeyError as e:
    print(e)
except ValueError as e:
    print(e)
else:
    print('try内没有异常')
finally:
    print('无论异常与否,都会执行我')

1.8raise抛出异常

def not_zero(num):
    try:
        if num == 0:
            raise ValueError('参数错误')
        return num
    except Exception as e:
        print(e)
not_zero(0)

里面有一些代码是借鉴https://blog.csdn.net/polyhedronx/article/details/81589196
希望可以帮到小伙伴!!!

上一篇:一日一技:不使用 try...except 掩盖一些已知异常


下一篇:2020-12-07