Python 异常处理和日志处理方式
异常处理
异常处理是一种用于处理程序运行时出现错误情况的机制。在 Python 中,错误情况被称为异常(Exception),当异常发生时,程序将中断执行,并抛出相应的异常消息。
try…except…
Python 中使用 try...except...
的结构来处理异常。 try
用于包含可能会抛出异常的代码块,而 except
则用于处理抛出的异常。
try:
# 可能会抛出异常的代码块
except ExceptionType:
# 处理异常的代码块
我们可以使用 Exception
作为通用的异常类型。当发生任何类型的异常时,都会被 Exception
捕获。
下面是一个例子:
try:
num1 = int(input("输入被除数:"))
num2 = int(input("输入除数:"))
result = num1 / num2
print(result)
except Exception:
print("输入错误或导致除零错误,请检查")
多个 except
当我们知道可能会抛出的异常类型时,可以使用多个 except
来分别处理不同类型的异常。
try:
# 可能会抛出异常的代码块
except ExceptionType1:
# 处理异常类型为 ExceptionType1 的代码块
except ExceptionType2:
# 处理异常类型为 ExceptionType2 的代码块
下面是一个例子:
try:
num1 = int(input("输入被除数:"))
num2 = int(input("输入除数:"))
result = num1 / num2
print(result)
except ValueError:
print("输入错误,请重新输入数字!")
except ZeroDivisionError:
print("除数不能为零,请重新输入")
finally
finally
语句块中的代码不管是否发生了异常都会执行。可以用 finally
来释放文件,或者关闭数据库连接等资源。
try:
# 可能会抛出异常的代码块
except ExceptionType:
# 处理异常的代码块
finally:
# 不管是否发生异常,都会执行的代码块
下面是一个例子:
try:
file = open("file.txt", "r")
content = file.read()
print(content)
except Exception:
print("发生异常")
finally:
if file:
file.close()
日志处理
日志处理是一种记录应用程序运行过程中发生的事件的方式。通过日志,我们可以了解到程序的运行情况,及时定位并解决问题。
Python 中使用 logging
模块来记录日志。可以通过这个模块来配置日志记录级别、输出格式、输出方式等。
日志级别
Python 中提供了多个日志记录级别,包括:
CRITICAL
– 严重错误ERROR
– 一般错误WARNING
– 警告信息INFO
– 一般信息DEBUG
– 调试信息
我们可以通过 logging.basicConfig()
来配置日志记录的格式和输出方式。下面是一个例子:
import logging
logging.basicConfig(filename='example.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('这是一条调试信息')
logging.info('这是一条一般信息')
logging.warning('这是一条警告信息')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误')
日志文件输出
我们可以通过设置 logging.basicConfig()
的参数 filename
来将日志输出到文件中。
import logging
logging.basicConfig(filename='example.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
日志控制台输出
我们可以通过设置 logging.basicConfig()
的参数 stream
来将日志输出到控制台。
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
自定义日志记录器
可以通过创建自定义的日志记录器来实现更加灵活的日志处理。
import logging
# 创建一个自定义的 logger
logger = logging.getLogger('example')
logger.setLevel(logging.DEBUG)
# 创建一个文件日志处理器
file_handler = logging.FileHandler('example.log')
# 设置日志处理器的级别和格式
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# 将日志处理器添加到 logger 中
logger.addHandler(file_handler)
# 输出日志信息
logger.debug('这是一条调试信息')
logger.info('这是一条一般信息')
logger.warning('这是一条警告信息')
logger.error('这是一条错误信息')
logger.critical('这是一条严重错误')
以上就是Python异常处理和日志处理的攻略,希望能够对你有所帮助。