python中文件和异常处理方法(二)

简介: python中文件和异常处理方法(二)

python中文件和异常处理方法二)

一.综合示例:文件操作和异常处理

下面是一个综合示例,它展示了如何在处理文件时捕获和处理异常。

python复制代码

 

def read_file(filename):

 

try:

 

# 尝试打开文件并读取内容

 

with open(filename, 'r') as file:

 

return file.read()

 

except FileNotFoundError:

 

# 如果文件不存在,则打印错误消息并返回 None

 

print(f'The file {filename} does not exist.')

 

return None 

 

except Exception as e:

 

# 如果发生其他异常,则打印错误消息并返回 None

 

print(f'An error occurred while reading the file: {e}')

 

return None 

 

 

 

# 调用函数并处理返回的结果

 

content = read_file('nonexistent_file.txt')

 

if content is not None:

 

print(content)

 

else:

 

print('Failed to read the file.')

这个示例中的read_file()函数尝试打开并读取指定的文件。如果文件不存在,它会捕获FileNotFoundError异常并打印错误消息。如果发生其他类型的异常(如权限问题或磁盘错误),它会捕获Exception基类异常并打印错误消息。无论是否发生异常,函数都会返回一个值(文件内容或None),调用者可以检查这个值来确定操作是否成功。

二.自定义异常

在Python中,除了处理内置异常外,你还可以定义自己的异常类。这在你需要为特定情况创建特定错误消息时非常有用。

1.定义自定义异常类

python复制代码

 

class CustomError(Exception):

 

def __init__(self, message):

 

self.message = message

 

 

 

def __str__(self):

 

return f'CustomError: {self.message}'

2.引发并使用自定义异常

python复制代码

 

def divide_numbers(a, b):

 

if b == 0:

 

raise CustomError('Division by zero is not allowed.')

 

else:

 

return a / b

 

 

 

try:

 

result = divide_numbers(10, 0)

 

except CustomError as e:

 

print(e)

在这个例子中,我们定义了一个CustomError类,它继承自内置的Exception类。当divide_numbers函数中的除数为0时,我们引发CustomError异常,并传递一个自定义的错误消息。在try块中,我们调用divide_numbers函数,并在except块中捕获CustomError异常,打印出异常消息。

目录
相关文章
|
2天前
|
JSON JavaScript 数据格式
python遍历目录文件_结合vue获取所有的html文件并且展示
python遍历目录文件_结合vue获取所有的html文件并且展示
4 0
|
4天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
21 0
|
8天前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
8天前
|
Python
Python动态IP代理防止被封的方法
Python动态IP代理防止被封的方法
|
8天前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
9天前
|
JSON 关系型数据库 数据库
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
37 0
|
9天前
|
程序员 数据库连接 索引
《Python 简易速速上手小册》第5章:Python 常见错误和异常处理(2024 最新版)
《Python 简易速速上手小册》第5章:Python 常见错误和异常处理(2024 最新版)
28 1
|
9天前
|
数据采集 存储 安全
python检测代理ip是否可用的方法
python检测代理ip是否可用的方法
|
9天前
|
数据挖掘 索引 Python
Python 读写 Excel 文件
Python 读写 Excel 文件
12 0
|
1天前
|
机器学习/深度学习 数据挖掘 API
pymc,一个灵活的的 Python 概率编程库!
pymc,一个灵活的的 Python 概率编程库!
4 1