getMark computes a marker for the given error.
(err error)
| 194 | |
| 195 | // getMark computes a marker for the given error. |
| 196 | func getMark(err error) errorMark { |
| 197 | if m, ok := err.(*withMark); ok { |
| 198 | return m.mark |
| 199 | } |
| 200 | m := errorMark{ |
| 201 | msg: safeGetErrMsg(err), |
| 202 | types: []errorspb.ErrorTypeMark{errbase.GetTypeMark(err)}, |
| 203 | } |
| 204 | for c := errbase.UnwrapOnce(err); c != nil; c = errbase.UnwrapOnce(c) { |
| 205 | m.types = append(m.types, errbase.GetTypeMark(c)) |
| 206 | } |
| 207 | return m |
| 208 | } |
| 209 | |
| 210 | // safeGetErrMsg extracts an error's Error() but tolerates panics. |
| 211 | func safeGetErrMsg(err error) (result string) { |
no test coverage detected
searching dependent graphs…