当前位置:   article > 正文

python异常处理_python异常值处理代码

python异常值处理代码

python异常处理

基本格式

try:
    #代码
except Exception as e:
    #try中的代码有异常,此代码块中的代码会执行
  • 1
  • 2
  • 3
  • 4
try:
    #代码
except Exception as e:
    #try中的代码有异常,次代码块中的代码会执行
finally:
    #无论try中的代码是否报错,都执行
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

常见应用场景:

  • 调用微信app实现微信消息的推送,微信支付等
  • 支付宝支付,视频播放等
  • 数据库或redis连接和操作
  • 调用第三方的视频播放发送功能,由第三方的程序出问题导致的错误

1.异常分类

异常细分处理示例

import requests
from requests import exceptions

while True:
    url = input("请输入要下载网页地址:")
    try:
        res = requests.get(url=url)
        print(res)    
    except exceptions.MissingSchema as e:
        print("URL架构不存在")
    except exceptions.InvalidSchema as e:
        print("URL架构错误")
    except exceptions.InvalidURL as e:
        print("URL地址格式错误")
    except exceptions.ConnectionError as e:
        print("网络连接错误")
    except Exception as e:
        print("代码出现错误", e)
        
# 提示:如果想要写的简单一点,其实只写一个Exception捕获错误就可以了。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

错误细分处理

try:
    # 逻辑代码
    pass
#key错误
except KeyError as e:
    # 小兵,只捕获try代码中发现了键不存在的异常,例如:去字典 info_dict["n1"] 中获取数据时,键不存在。
    print("KeyError")
#值错误
except ValueError as e:
    # 小兵,只捕获try代码中发现了值相关错误,例如:把字符串转整型 int("无诶器")
    print("ValueError")

except Exception as e:
    # 王者,处理上面except捕获不了的错误(可以捕获所有的错误)。
    print("Exception")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.自定义异常&抛出异常

自定义异常

class MyException(Exception):
    pass
try:
    #代码
except MyException as e:
    print('MyException异常',e)
except Exception as e:
    #try中的代码有异常,此代码块中的代码会执行
    print('Exception',e)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

触发异常

class MyException(Exception):
    pass
try:
    rasie MyException()
except MyException as e:
    print('MyException异常',e)
except Exception as e:
    #try中的代码有异常,此代码块中的代码会执行
    print('Exception',e)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.特殊的finally

try:
    #代码
except Exception as e:
    #try中的代码有异常,次代码块中的代码会执行
finally:
    #无论是否报错,都执行
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在函数中,即使定义了return,也会执行finally代码块的代码

def func():
    try:
    #代码
    	print(111)
        return 123
	except Exception as e:
    	#try中的代码有异常,次代码块中的代码会执行
	finally:
    	#无论是否报错,
        print(666)
func()
111
666
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/205031
推荐阅读
相关标签
  

闽ICP备14008679号