摘要

已完成

如您所見,Go 中的錯誤處理和記錄與其他程式設計語言中的這些處理流程不同。 首先,Go 的錯誤處理方法很簡單。 您可以使用 if 條件,而您要呼叫的函式應該會傳回多個值。 依慣例,最後傳回的值是錯誤。 如果錯誤變數回傳 nil,則沒有錯誤。 如果值不是 nil,會發生失敗。 您可以藉由再次傳回錯誤,將錯誤傳播至堆疊,而且您可以視需要包含更多內容。

您可以建立可重複使用的錯誤變數,做為程式中常見錯誤訊息的傳回值。

您也需要知道何時會發生異常。 我們已探討 panicrecover 如何運作。 只有當您明確需要停止程式時,才應該使用這些函式。 有時候,即使您正確處理錯誤,您的程式也可能會停止回應。 但這應該是例外狀況,而不是規則。

最後,我們探討在 Go 中記錄的運作方式,而且您已了解如何使用標準程式庫。 除了將記錄列印至主控台之外,您可以將記錄傳送至檔案以供稍後處理,然後將其傳送到集中的位置。 當您的程式碼基底增長時,可能需要進行其他作業,例如設定記錄層級或設定不同的輸出。 標準程式庫不支援這些工作。 您必須使用類似 zerolog 的紀錄架構。

此課程模組很簡短,但請務必了解這些概念。 當您需要針對程式中的問題進行疑難排解時,這些概念會很有幫助。