diff options
Diffstat (limited to 'libgo/go/gob/error.go')
-rw-r--r-- | libgo/go/gob/error.go | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/libgo/go/gob/error.go b/libgo/go/gob/error.go index 106543d7360..fbae8b683da 100644 --- a/libgo/go/gob/error.go +++ b/libgo/go/gob/error.go @@ -4,37 +4,34 @@ package gob -import ( - "fmt" - "os" -) +import "fmt" // Errors in decoding and encoding are handled using panic and recover. // Panics caused by user error (that is, everything except run-time panics // such as "index out of bounds" errors) do not leave the file that caused -// them, but are instead turned into plain os.Error returns. Encoding and -// decoding functions and methods that do not return an os.Error either use +// them, but are instead turned into plain error returns. Encoding and +// decoding functions and methods that do not return an error either use // panic to report an error or are guaranteed error-free. -// A gobError wraps an os.Error and is used to distinguish errors (panics) generated in this package. +// A gobError is used to distinguish errors (panics) generated in this package. type gobError struct { - err os.Error + err error } -// errorf is like error but takes Printf-style arguments to construct an os.Error. +// errorf is like error_ but takes Printf-style arguments to construct an error. // It always prefixes the message with "gob: ". func errorf(format string, args ...interface{}) { - error(fmt.Errorf("gob: "+format, args...)) + error_(fmt.Errorf("gob: "+format, args...)) } // error wraps the argument error and uses it as the argument to panic. -func error(err os.Error) { +func error_(err error) { panic(gobError{err}) } // catchError is meant to be used as a deferred function to turn a panic(gobError) into a -// plain os.Error. It overwrites the error return of the function that deferred its call. -func catchError(err *os.Error) { +// plain error. It overwrites the error return of the function that deferred its call. +func catchError(err *error) { if e := recover(); e != nil { *err = e.(gobError).err // Will re-panic if not one of our errors, such as a runtime error. } |