簡體   English   中英

如何查找可能引發的異常

[英]How to find what exceptions might be raised

我正在嘗試找出找出我的python代碼可能引發哪些異常的最佳方法,你們使用的最佳方法是什么?

到目前為止,我可以:

  1. 祈禱是在某處在線文檔中說的(很少這么做)。
  2. 抓取.py文件以引發語句...

必須有更好的方法來獲取此信息!

之前(6年前)曾問過這個問題,但他們沒有得到任何答案。

普遍的共識似乎是,只捕獲您認為需要捕獲的異常,但是我只知道一開始會拋出哪些異常,才知道可能需要捕獲哪些異常...所以我不能接受作為答案。 如果您的代碼將要引發異常,那么肯定應該有一些地方讓代碼用戶知道那些異常是什么。

你們能給我的任何建議都非常感謝!

有一種方法可以捕獲所有異常,但通常對此並不滿意。 弄清楚的最佳方法是為程序編寫一些測試。 我相信您已經知道,每個程序都會根據其工作情況拋出不同的異常。 因此,只需進行測試,測試和更多測試。

答案不僅在於調用的函數,還在於編寫的代碼。

如果您的代碼始終發送有效的參數,則它將永遠不會引發Exception,因此沒有任何收獲。

但是,您的代碼可能會完全混亂,甚至會導致原始開發人員無法預期的異常。 例如發送定制的類或輸入類型。

我的建議是,除非您打算觸發異常,否則幾乎不需要捕獲異常。

在這方面,您的示例非常相關:

如果您硬編碼一個字符串re.compile()將永遠不會失敗...完成工作! 但是,如果您發送動態正則表達式(以編程方式生成或從用戶輸入中收集),則您的代碼將必須處理不正確的正則表達式並處理相關的異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM