亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在其功能之外拾取異常

在其功能之外拾取異常

紅顏莎娜 2022-07-05 15:40:32
我有一個基于文本的程序,它在“while True:”樣式循環中使用菜單和子菜單。您可以通過頂部菜單進入子菜單 - 已編輯以包含代碼。輸出如下所示:1 Collect Attachments2 View Senders3 Edit Senders4 QuitChoose an option: 1Chose Collect AttachmentsEnter a date dd-mm-yyyy: 21-01-2020Enter how many days previous to search through: 7Your search starts from 2020-01-21 00:00:00 and ends on 2020-01-140 Search Any1 Hazel Blue2 Duo Security3 Esker Australia Pty Ltd4 iiNet Billing Team5 TeamViewer Sales6 ple.com.au Gnangara Warehouse Team7 [email protected] Amazon Web ServicesThere are 9 options.Choose a sender (blank to exit):You did not enter a valid number (ValueError)問題是 ValueError 不應該出現在子菜單中。這都是自學的,所以我想我不明白異常處理是如何完成的。
查看完整描述

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條款,當然您的里程可能會有所不同。


查看完整回答
反對 回復 2022-07-05
?
四季花海

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()


查看完整回答
反對 回復 2022-07-05
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號