【发布时间】:2014-03-30 18:14:45
【问题描述】:
如果输入了与菜单无关的数字,我试图让我的代码引发异常错误。目前我的程序刚刚终止。
import os
mainfile = open('grades.txt', 'a')
def main():
choice = 1
try:
while choice >= 1 and choice <= 3:
display_menu()
choice = int(input('Please enter a number 1- 3 : '))
if choice == 1:
student_entry()
elif choice == 2:
student_read()
elif choice == 3:
quit_choice()
except ValueError:
print('an error has occurred\n')
return main()
except:
print(' An error occurred')
return main()
def display_menu():
print()
print('Press 1 to enter student information\n')
print('Press 2 to read student information\n')
print('Press 3 to exit program\n')
main()
当输入 1-3 范围之外的数字时,如何让它引发异常?我尝试了一些不同的东西,但仍然没有弄清楚。我可以编写另一个 while 语句或添加一些 elif 语句来处理它,但我实际上需要引发异常/错误。
【问题讨论】:
-
raise ValueError。 It's all in docs.PS。您应该始终以else结束if... elif...,以确保您处理所有情况。 -
顺便说一句,那些
return语句是递归的,我不认为那是你真正想要的。 -
递归是什么意思?我的印象是我需要声明才能返回主函数?
-
except:从不使用裸except。指定要捕获的异常。就目前而言,您的代码甚至可以捕获您可能不想想要捕获的KeyboardInterrupt。 -
@m.wasowski 注意到,感谢您的意见
标签: python exception python-3.x syntax