mirror of
https://github.com/golang/go
synced 2024-11-21 16:34:42 -07:00
errors: new package
The only function is errors.New, at least for now. R=r, gustavo, adg, r CC=golang-dev https://golang.org/cl/5321061
This commit is contained in:
parent
2a0e15d36c
commit
e4ae30f5f5
@ -75,6 +75,7 @@ DIRS=\
|
||||
encoding/git85\
|
||||
encoding/hex\
|
||||
encoding/pem\
|
||||
errors\
|
||||
exec\
|
||||
exp/ebnf\
|
||||
exp/ebnflint\
|
||||
|
11
src/pkg/errors/Makefile
Normal file
11
src/pkg/errors/Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
# Copyright 2011 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.
|
||||
|
||||
include ../../Make.inc
|
||||
|
||||
TARG=errors
|
||||
GOFILES=\
|
||||
errors.go\
|
||||
|
||||
include ../../Make.pkg
|
20
src/pkg/errors/errors.go
Normal file
20
src/pkg/errors/errors.go
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2011 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 implements functions to manipulate errors.
|
||||
package errors
|
||||
|
||||
// New returns an error that formats as the given text.
|
||||
func New(text string) error {
|
||||
return &errorString{text}
|
||||
}
|
||||
|
||||
// errorString is a trivial implementation of error.
|
||||
type errorString struct {
|
||||
s string
|
||||
}
|
||||
|
||||
func (e *errorString) Error() string {
|
||||
return e.s
|
||||
}
|
33
src/pkg/errors/errors_test.go
Normal file
33
src/pkg/errors/errors_test.go
Normal file
@ -0,0 +1,33 @@
|
||||
// Copyright 2011 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 (
|
||||
. "errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNewEqual(t *testing.T) {
|
||||
// Different allocations should not be equal.
|
||||
if New("abc") == New("abc") {
|
||||
t.Errorf(`New("abc") == New("abc")`)
|
||||
}
|
||||
if New("abc") == New("xyz") {
|
||||
t.Errorf(`New("abc") == New("xyz")`)
|
||||
}
|
||||
|
||||
// Same allocation should be equal to itself (not crash).
|
||||
err := New("jkl")
|
||||
if err != err {
|
||||
t.Errorf(`err != err`)
|
||||
}
|
||||
}
|
||||
|
||||
func TestErrorMethod(t *testing.T) {
|
||||
err := New("abc")
|
||||
if err.Error() != "abc" {
|
||||
t.Errorf(`New("abc").Error() = %q, want %q`, err.Error(), "abc")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user