Go でのパニック処理には、エラー メッセージの後にコール スタックが出力されます。ただし、このデフォルトの動作では実際のエラーの原因がわかりにくくなり、デバッグが困難になることがよくあります。
次のコード スニペットを考えてみましょう。
value, err := some3rdpartylib.DoSomething() if err != nil { panic(err) }
err が非 nil の場合、結果としてパニック メッセージが表示されます。エラーの説明は含まれますが、エラーが返される原因となった特定のコード行は含まれません。
エラーをソースまで遡って追跡するには、エラー パッケージを利用することが 1 つのオプションです。エラー タイプに StackTrace() メソッドを実装すると、エラーに関連付けられたスタック トレースにアクセスできます。
type stackTracer interface { StackTrace() errors.StackTrace } err, ok := err.(stackTracer) // Check if error implements stackTracer if !ok { // Handle case where error doesn't implement stackTracer } stack := err.StackTrace() fmt.Println(stack) // Print the stack trace
さらに、他のサードパーティ製ライブラリもあります。 Go のデフォルトのエラー処理を拡張したライブラリ機能:
以上がGo Panic のデバッグを容易にするために、より詳細なスタック トレースを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。