Skip to content

Go言語のエラーラッピング

   

エラーのラッピングをすると何がうれしいのかという問いへの解答が見えた気がする。

ラッピングしない場合、元のエラーの文字列以外の情報が失われてしまうが、ラッピングするとエラー情報をアンラップして取り出すことができる。

失われてしまう情報が呼び出し元で必要な場合は、エラーをそのままreturnして返すか、必要な情報も含めてErrorfに書かないといけない。

しかし、エラーをそのまま返したら、どこでエラーが発生したかの情報が失われるし、呼び出し元が何を必要としているかを、呼ばれる側が知っている必要もない。

そうすると、その場でエラーログを出力するか、すべての情報をErrorfに入れ込むかすることになる。 いずれにしても冗長である。

こういったことが、ラッピングすることによって解決できる。 という理解。