Source File
error_type.go
Belonging Package
go.opentelemetry.io/otel/semconv/v1.40.0
// Copyright The OpenTelemetry Authors// SPDX-License-Identifier: Apache-2.0package semconv // import "go.opentelemetry.io/otel/semconv/v1.40.0"import ()// ErrorType returns an [attribute.KeyValue] identifying the error type of err.//// If err is nil, the returned attribute has the default value// [ErrorTypeOther].//// If err or one of the errors in its chain has the method//// ErrorType() string//// the returned attribute has that method's return value. If multiple errors in// the chain implement this method, the value from the first match found by// [errors.As] is used. Otherwise, the returned attribute has a value derived// from the concrete type of err.//// The key of the returned attribute is [ErrorTypeKey].func ( error) attribute.KeyValue {if == nil {return ErrorTypeOther}return ErrorTypeKey.String(errorType())}func errorType( error) string {var stringif , := .(interface{ () string }); {// Fast path: check the top-level error first.= .()} else {// Fallback: search the error chain for an ErrorType method.var interface{ () string }if errors.As(, &) {// Prioritize the ErrorType method if available.= .()}}if == "" {// Fallback to reflection if the ErrorType method is not supported or// returns an empty value.:= reflect.TypeOf(), := .PkgPath(), .Name()if != "" && != "" {= + "." +} else {// The type has no package path or name (predeclared, not-defined,// or alias for a not-defined type).//// This is not guaranteed to be unique, but is a best effort.= .String()}}return}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |