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()