3、对给定的预约记录管理系统程序“预约记录增删改查.py”,改写该程序,添加适合的异常处理并对输人数据进行合法性验证,增强程序健壮性
时间: 2024-10-20 20:12:59 浏览: 18
在Python中,对"预约记录增删改查.py"程序进行异常处理和输入数据合法性验证可以按照以下步骤进行:
1. 引入必要的异常模块:
```python
import sys
from typing import Any, Union
```
2. 对函数进行修改,增加try-except块以捕获可能发生的错误:
```python
def add_reservation(record: dict):
try:
# 在这里添加数据验证,如日期检查、空值检查等
validate_data(record)
# 添加到数据库操作
save_to_database(record)
except ValueError as ve:
print(f"添加预约失败: {ve}")
sys.exit(1)
except Exception as e:
print("添加预约时发生未知错误:", e)
sys.exit(1)
# 类似地,为删除、修改和查询函数也加上异常处理
def validate_data(record: dict) -> None:
if not isinstance(record, dict) or "date" not in record or "name" not in record:
raise ValueError("预约信息应包含日期和姓名")
# 根据实际需求进行其他字段的检查
# 数据库保存逻辑...
```
3. 定义全局数据验证函数`validate_data()`,用于检查输入是否合法。
4. 在用户交互部分,提示用户输入并尝试处理:
```python
while True:
action = input("请选择操作(add, delete, modify, query, exit):")
if action == 'exit':
break
elif action in ['add', 'delete', 'modify', 'query']:
data = get_user_input() # 获取用户输入,可能需要校验
if action != 'exit':
method_name = f"{action}_reservation"
getattr(sys.modules[__name__], method_name)(data)
else:
print("无效的操作,请重新选择。")
```
在这个改进后的版本中,如果用户输入的数据不合法或程序在运行过程中遇到意外错误,会打印出相应的错误信息,并允许程序继续运行而不会崩溃。这样大大增强了程序的健壮性和用户体验。
阅读全文