// Copyright 2012 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
package errors_test | |
import ( | |
"fmt" | |
"time" | |
) | |
// MyError is an error implementation that includes a time and message. | |
type MyError struct { | |
When time.Time | |
What string | |
} | |
func (e MyError) Error() string { | |
return fmt.Sprintf("%v: %v", e.When, e.What) | |
} | |
func oops() error { | |
return MyError{ | |
time.Date(1989, 3, 15, 22, 30, 0, 0, time.UTC), | |
"the file system has gone away", | |
} | |
} | |
func Example() { | |
if err := oops(); err != nil { | |
fmt.Println(err) | |
} | |
// Output: 1989-03-15 22:30:00 +0000 UTC: the file system has gone away | |
} |