「請求寬恕而不是許可」:技術解釋
在程式設計中,短語「請求寬恕而不是許可」描述了兩種截然不同的編碼風格:
「請求許可」樣式:
if can_do_operation(): perform_operation() else: handle_error_case()
「請求寬恕」樣式:
try: perform_operation() except Unable_to_perform: handle_error_case()
在「請求許可」方法中,存在can_do_operation如果操作無法執行,() 檢查會阻止執行 Perform_Operation() 呼叫。然而,這種方法依賴 can_do_operation() 檢查的準確性,這在動態環境中或處理外部資源時可能並不總是可靠。
「請求寬恕」的好處
範例:實例屬性存取
在您的範例中,您詢問在存取實例屬性時如何使用「請求寬恕」。雖然通常被認為是程式設計師錯誤,但存取不存在的屬性可能是有效的場景,例如在處理可選物件部分時。
if foo.bar is not None: handle_optional_part(foo.bar) else: default_handling()
結論「請求寬恕而不是許可」原則建議將異常作為程序執行的自然部分,特別是當處理可選功能或外部資源互動。它在動態和並發環境中提供了更大的靈活性和適應性,同時仍透過異常處理機制啟用錯誤處理。
以上是請求寬恕,而不是許可:異常處理何時比先發制人的檢查更好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!