2 回答

TA贡献1784条经验 获得超9个赞
这是问题:
>>> int("")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
因此,当您在子菜单中说“空白退出”时,您应该:
在转换为数字之前检查空字符串
只使用字符串
顺便说一句,学习logging包并logging.exception在抑制异常时使用通常很有用。
此外,try您使用的涵盖数十行代码的大型子句通常不受欢迎,因为它很容易捕获意外异常,然后您已经注意到很难调试它。您通常应该尽可能地限制您的try条款,当然您的里程可能会有所不同。

TA贡献1811条经验 获得超5个赞
如果在 topMenu 中生成任何异常,您可以尝试此操作,那么它将不会进入子菜单,否则它将进入子菜单并执行操作。
def main():
def topMenu():
while True:
try:
# code if generate exception
subMenu()
# you can fetch specific exception or general
except Exception as e:
print(e)
def subMenu():
print("in submenu")
# code here...
topMenu()
main()
添加回答
举报