Go のエラー処理は、エラー情報を返す Error() メソッドを提供するエラー タイプを通じて実装されます。エラー処理には 2 つの方法があります。 明示的なチェック: if ステートメントを使用してエラーをチェックし、処理します。エラーの伝播: エラーは呼び出し元の関数に渡され、その処理方法が決定されます。
Go 関数でのエラー処理
Go では、エラーは通常、特別なエラー タイプで表されます。この型は、error
インターフェイスを実装し、エラー情報を返す Error()
メソッドを提供します。
エラー処理方法
Go でエラーを処理するには、主に 2 つの方法があります:
if
ステートメントを使用してエラーをチェックし、必要に応じて処理します。 #明示的なチェック
エラーを明示的にチェックする方法は次のとおりです:func checkError(err error) { if err != nil { // 处理错误 } }
エラーの伝播
エラーを伝播するには、呼び出し元の関数にエラーを返すだけです。呼び出し元関数は、必要に応じてエラーを処理したり、さらに伝達したりできます。func openFile(filename string) (file *os.File, err error) { file, err = os.Open(filename) return } func main() { f, err := openFile("test.txt") if err != nil { fmt.Println(err) } else { // 使用 file } }
ベスト プラクティス
実践的なケース
ファイルの読み取りと書き込みを行う関数を考えてみましょう:func readFile(filename string) (content []byte, err error) { data, err := os.ReadFile(filename) if err != nil { return nil, fmt.Errorf("无法读取文件: %w", err) } return data, nil }
fmt.Errorf## を使用します。 # 元のエラーを根本的な原因として新しいエラーを作成します。これにより、元のエラー コンテキストを維持しながら追加情報を追加できます。
以上がgolang関数のエラー処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。