【python】异常处理

1. 系统异常处理

如下代码:

# 语法错误
print(111)
print(a)  #NameError: name 'a' is not defined
b = 10
print(b)

#逻辑错误
while True:
    print(1234)

2. 异常处理

1:try/except
try:
    代码块
except 异常类型:
    异常处理的代码

运行逻辑:如果代码块中有系统异常,则except会捕获这个异常,然后在except后面可以对异常进行处理。
        如果代码块中没有系统异常,则不会执行except的处理代码

# 捕获万能异常
try:
    print(111)
    print(123+'hahah')  #抓到,先放着,执行完后面的内容之后,再来处理这个异常
    b = 10
    print(b)
except BaseException as e:
    print(e)  # 查看有哪些异常信息

#精确处理每一个异常,针对不同的异常有不同的处理情况
try:
    print(111)
    # print(a)
    print(123+'hahhahah')  #抓到,先放着,执行完后面的内容之后,再来处理这个异常
    b = 10
    print(b)
except NameError as e:
    print(e)  # 查看有哪些异常信息
    print('变量没有赋值')
except TypeError as e:
    print(e)
    print('不同类型不能做计算')
2:try..except..else
try:
    代码块1
except 异常类型:
    异常处理的代码
else:
    没有异常时执行的代码

运行逻辑:如果代码块1中有系统异常,则except会捕获这个异常,然后在except后面可以对异常进行处理。
        如果代码块1中没有系统异常,则不会执行except的处理代码
        代码1中有异常,则不会进入else执行,如果没有异常才会进入else执行

try:
    print(111)
    # print(a)
    # print(123+'huace')  #抓到,先放着,执行完后面的内容之后,再来处理这个异常
    b = 10
    print(b)
except BaseException as e:
    print(e)  # 查看有哪些异常信息
else:
    b = 10
    print(b)
3:try..except..finally

try:
    代码块1
except 异常类型:
    异常处理的代码
finally:
    代码块2

运行逻辑:如果代码块1中有系统异常,则except会捕获这个异常,然后在except后面可以对异常进行处理。
        如果代码块1中没有系统异常,则不会执行except的处理代码
        无论代码1中是否有异常,始终都会执行finally代码块2的内容
from selenium import webdriver
try:
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
except BaseException as e:
    print(e)
finally:
    driver.save_screenshot('baidu0610.png')
    driver.find_element_by_id('kw').send_keys('python')
    driver.find_element_by_id('su').click()
    driver.quit()

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值