mirror of
https://github.com/golang/go
synced 2024-11-12 03:50:21 -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/git85\
|
||||||
encoding/hex\
|
encoding/hex\
|
||||||
encoding/pem\
|
encoding/pem\
|
||||||
|
errors\
|
||||||
exec\
|
exec\
|
||||||
exp/ebnf\
|
exp/ebnf\
|
||||||
exp/ebnflint\
|
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