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()
添加回答
舉報