PythonClassChy/python27Class/pythonLearningNotes/flora_0227_notes.txt

127 lines
3.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=================================
HomeWork
Author: Flora Chen
-_- -_- -_- -_- -_- -_- -_- -_-
=================================
******异常******
1. 对于有可能会出错的代码, 我们可以对这行代码进行异常捕获。
try-except
try-except-else
try-except-else-finally
try-except-finally
示例:
try:
a = int(input('请输入一个数字:'))
except:
print('出错啦try里面的代码出现了异常执行except中的代码')
else:
print('try里面的代码没有出现异常的时候执行else中的代码')
finally:
print('不管代码是否出现异常,都会执行!')
2. 捕获指定类型的异常
示例:
try:
a = int(input('请输入一个数字:'))
print(b)
except NameError: # 指定异常才会被捕获。出现其他异常还是会报错。
print('出错啦出现NameError会打印')
3. 可以定义变量来接收异常
示例:
try:
a = int(input('请输入一个数字:'))
print(b)
except NameError as e:
print('当前出错的原因:', e) # 输出结果name 'b' is not defined
print('出错啦出现NameError会打印')
4. 捕获多个异常
示例:
# 方法一使用多个except不同的异常类型可以做不同的处理
try:
a = int(input('请输入一个数字:'))
print(b)
except NameError as e:
print('当前出错的原因:', e)
print('出错啦出现NameError会打印')
except ValueError as e2:
print('当前出错的原因:', e2)
print('出错啦出现ValueError会打印')
# 方式二一个except不同异常做相同处理
try:
a = int(input('请输入一个数字:'))
print(b)
except (NameError, ValueError) as e:
print('当前出错的原因:', e)
print('出错啦出现NameError, ValueError会打印')
# 注意上述代码中try的第一行代码出现异常try中的第二行代码就不会执行了
5. 捕获不确定的异常, 可以直接捕获常见异常类型的父类
示例:
try:
import requests
requests.ger(url='www.baidu.com')
except Exception as e:
print('出错的原因:', e)
6. else场景应用
示例:
import os
# 复制指定路径下的文件到当前文件所在的目录
def file_copy(path):
try:
file_list = os.listdir(path)
except FileNotFoundError as e:
print('你传入的路径不对,出现了错误,错误提示{}'.format(e))
# 获取文件路径没有出错才执行以下代码
else:
for file in file_list:
# 定位目标目录的文件
file_path = os.path.join(path, file)
# 如果是文件,则进行文件复制
if os.path.isfile(file_path):
# 读取文件的内容
with open(file_path, 'rb') as f:
content = f.read()
# 将上面读取到的内容写入到新文件中, 新文件跟当前文件同级并且命名带有cp
# with open(os.path.join(os.getcwd(), 'cp' + file), 'wb') as f:
with open('cp' + file, 'wb') as f:
f.write(content)
file_copy('path')
7. finally应用场景
示例:
# 通过finally来关闭文件
f = open('case.txt', 'w', encoding='utf-8')
try:
n= input('请输入数字:')
except:
f.write('代码错误了!')
else:
f.write('代码没有错误了!')
finally:
print('finally执行了')
f.close()
8. raise主动抛出异常
示例:
print('-----------------------')
# raise ValueError('这个自定的错误提示')
raise AssertionError
print('-----------------------')
9. assert断言
excepted = '用例执行通过'
result = '用例执行未通过'
assert excepted == result # 不相等会抛出异常AssertionError