Keep peeling away layers or context until a primitive error is revealed.
(ierr error)
| 220 | |
| 221 | // Keep peeling away layers or context until a primitive error is revealed. |
| 222 | func RootError(ierr error) (nerr error) { |
| 223 | nerr = ierr |
| 224 | for i := 0; i < 20; i++ { |
| 225 | terr := unwrapError(nerr) |
| 226 | if terr == nil { |
| 227 | return nerr |
| 228 | } |
| 229 | nerr = terr |
| 230 | } |
| 231 | return fmt.Errorf("too many iterations: %T", nerr) |
| 232 | } |
| 233 | |
| 234 | // Return the lowest-level DropboxError. This can be used when |
| 235 | // reporting the stack of the original exception to try and get the most |