異常處理:Try/Except 與If/Else
當面對程式碼中潛在的錯誤或異常時,程式設計師常常會猶豫是否使用try/ except 區塊或if/else 語句。雖然這個決定可能看起來微不足道,但它可以顯著影響程式碼設計、效能和可讀性。
Try/Except 與If/Else:首選方法
一般PEP 20 支援的共識是在以下情況下將try/ except 優先於if/else:
速度最佳化
考慮存取清單中元素的範例:
<code class="python">try: x = my_list[index] except IndexError: x = 'NO_ABC'</code>
這裡,當索引很可能在列表中找到時,try/ except 是有利的,可以最大限度地減少IndexError 的發生。相反,if/else 方法需要額外的查找:
<code class="python">if index < len(my_list): x = my_list[index] else: x = 'NO_ABC'
異常處理和可讀性
Python 鼓勵使用異常作為其EAFP 的一部分(請求寬恕比請求許可更容易)哲學。透過在 try/ except 區塊中優雅地捕獲錯誤,程式設計師可以確保異常不會默默地通過。此外,try/ except 允許更簡潔和優雅的程式碼:
<code class="python">Worse (LBYL: 'look before you leap'): if not isinstance(s, str) or not s.isdigit(): return None elif len(s) > 10: #too many digits for int conversion return None else: return int(s) Better (EAFP: Easier to ask for forgiveness than permission): try: return int(s) except (TypeError, ValueError, OverflowError): #int conversion failed return None</code>
以上是Try/Except 與 If/Else:何時使用它們進行錯誤處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!