From 697fe25cfeeb3ce516c8fa82e13bcb379c250082 Mon Sep 17 00:00:00 2001 From: "Stephen M. McQuay" Date: Mon, 27 Aug 2012 22:41:36 -0600 Subject: [PATCH] added example file of writing an error struct/method combo --- errors/errors.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 errors/errors.go diff --git a/errors/errors.go b/errors/errors.go new file mode 100644 index 0000000..7a39ae0 --- /dev/null +++ b/errors/errors.go @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "time" +) + +type SMBError struct { + What string + When time.Time +} + +// the receiver and that which is returned from generate_error must match +// types. You may change this to an SMBError pointer recevier, or change the +// return from generate_error to be an address. +func (e SMBError) Error() string { + return fmt.Sprintf("%v at %v", e.What, e.When) +} + +func generate_error() error { + return SMBError{ + "Here is a silly error", + time.Now(), + } +} + +func main() { + if err := generate_error(); err != nil { + fmt.Println(err) + } +}