请编写程序,实现简单学生记录检索应用。即从键盘输入一个学生的学号,如果学号在在student.txt文件中,可以显示该学生记录,如果输入的学号不在文件中,则显示检索失败的信息。其中,代码必须结合异常处理机制来实现,例如自定义一个StudentNotFoundException用于表示学生检索失败的异常。
时间: 2024-03-05 22:48:31 浏览: 10
好的,以下是一个结合异常处理机制的实现方法:
```python
# 自定义学生检索失败的异常类
class StudentNotFoundException(Exception):
pass
try:
# 打开student.txt文件
file = open("student.txt", "r")
# 读取文件内容并将每行数据存储到字典中
students = {}
for line in file:
data = line.strip().split(",")
students[data[0]] = data[1:]
# 关闭文件
file.close()
# 获取用户输入的学号
sid = input("请输入学生学号:")
# 检索学生记录
if sid in students:
print(f"学号为 {sid} 的学生信息为:{students[sid]}")
else:
raise StudentNotFoundException("检索失败")
except StudentNotFoundException as e:
print(e)
except Exception as e:
print("程序出现错误:", e)
```
以上代码与之前的实现方法类似,但是在检索失败时,抛出了自定义的 `StudentNotFoundException` 异常。在代码块中增加了异常处理机制,当捕获到 `StudentNotFoundException` 异常时,输出相应的错误信息;当捕获到其他异常时,输出程序出错的信息。