本文整理汇总了Golang中github.com/juju/errors.Details函数的典型用法代码示例。如果您正苦于以下问题:Golang Details函数的具体用法?Golang Details怎么用?Golang Details使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Details函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestWrap
func (*functionSuite) TestWrap(c *gc.C) {
first := errors.New("first") //err wrapFirst
detailed := errors.New("detailed")
err := errors.Wrap(first, detailed) //err wrapTest
c.Assert(err.Error(), gc.Equals, "detailed")
c.Assert(errors.Cause(err), gc.Equals, detailed)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["wrapFirst"].String())
c.Assert(errors.Details(err), jc.Contains, tagToLocation["wrapTest"].String())
}
开发者ID:CowLeo,项目名称:qdb,代码行数:9,代码来源:functions_test.go
示例2: checkErr
func checkErr(c *gc.C, err, cause error, msg string, details string) {
c.Assert(err, gc.NotNil)
c.Assert(err.Error(), gc.Equals, msg)
c.Assert(errors.Cause(err), gc.Equals, cause)
expectedDetails := replaceLocations(details)
c.Assert(errors.Details(err), gc.Equals, expectedDetails)
}
开发者ID:CowLeo,项目名称:qdb,代码行数:7,代码来源:package_test.go
示例3: TestWrapOfNil
func (*functionSuite) TestWrapOfNil(c *gc.C) {
detailed := errors.New("detailed")
err := errors.Wrap(nil, detailed) //err nilWrapTest
c.Assert(err.Error(), gc.Equals, "detailed")
c.Assert(errors.Cause(err), gc.Equals, detailed)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["nilWrapTest"].String())
}
开发者ID:CowLeo,项目名称:qdb,代码行数:7,代码来源:functions_test.go
示例4: ServerError
// ServerError returns an error suitable for returning to an API
// client, with an error code suitable for various kinds of errors
// generated in packages outside the API.
func ServerError(err error) *params.Error {
if err == nil {
return nil
}
logger.Tracef("server RPC error %v", errors.Details(err))
msg := err.Error()
// Skip past annotations when looking for the code.
err = errors.Cause(err)
code, ok := singletonCode(err)
var info *params.ErrorInfo
switch {
case ok:
case errors.IsUnauthorized(err):
code = params.CodeUnauthorized
case errors.IsNotFound(err):
code = params.CodeNotFound
case errors.IsUserNotFound(err):
code = params.CodeUserNotFound
case errors.IsAlreadyExists(err):
code = params.CodeAlreadyExists
case errors.IsNotAssigned(err):
code = params.CodeNotAssigned
case state.IsHasAssignedUnitsError(err):
code = params.CodeHasAssignedUnits
case state.IsHasHostedModelsError(err):
code = params.CodeHasHostedModels
case isNoAddressSetError(err):
code = params.CodeNoAddressSet
case errors.IsNotProvisioned(err):
code = params.CodeNotProvisioned
case IsUpgradeInProgressError(err):
code = params.CodeUpgradeInProgress
case state.IsHasAttachmentsError(err):
code = params.CodeMachineHasAttachedStorage
case isUnknownModelError(err):
code = params.CodeModelNotFound
case errors.IsNotSupported(err):
code = params.CodeNotSupported
case errors.IsBadRequest(err):
code = params.CodeBadRequest
case errors.IsMethodNotAllowed(err):
code = params.CodeMethodNotAllowed
default:
if err, ok := err.(*DischargeRequiredError); ok {
code = params.CodeDischargeRequired
info = ¶ms.ErrorInfo{
Macaroon: err.Macaroon,
// One macaroon fits all.
MacaroonPath: "/",
}
break
}
code = params.ErrCode(err)
}
return ¶ms.Error{
Message: msg,
Code: code,
Info: info,
}
}
开发者ID:bac,项目名称:juju,代码行数:63,代码来源:errors.go
示例5: sendError
// sendError sends a JSON-encoded error response.
func (h *logSinkHandler) sendError(w io.Writer, req *http.Request, err error) {
if err != nil {
logger.Errorf("returning error from %s %s: %s", req.Method, req.URL.Path, errors.Details(err))
}
sendJSON(w, ¶ms.ErrorResult{
Error: common.ServerError(err),
})
}
开发者ID:snailwalker,项目名称:juju,代码行数:9,代码来源:logsink.go
示例6: TestMaskf
func (*functionSuite) TestMaskf(c *gc.C) {
first := errors.New("first")
err := errors.Maskf(first, "masked %d", 42) //err maskfTest
c.Assert(err.Error(), gc.Equals, "masked 42: first")
c.Assert(errors.Cause(err), gc.Equals, err)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["maskfTest"].String())
c.Assert(errors.Maskf(nil, "mask"), gc.IsNil)
}
开发者ID:CowLeo,项目名称:qdb,代码行数:9,代码来源:functions_test.go
示例7: TestTrace
func (*functionSuite) TestTrace(c *gc.C) {
first := errors.New("first")
err := errors.Trace(first) //err traceTest
c.Assert(err.Error(), gc.Equals, "first")
c.Assert(errors.Cause(err), gc.Equals, first)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["traceTest"].String())
c.Assert(errors.Trace(nil), gc.IsNil)
}
开发者ID:CowLeo,项目名称:qdb,代码行数:9,代码来源:functions_test.go
示例8: TestNewErr
func (*errorsSuite) TestNewErr(c *gc.C) {
if runtime.Compiler == "gccgo" {
c.Skip("gccgo can't determine the location")
}
err := newEmbed("testing %d", 42) //err embedErr
c.Assert(err.Error(), gc.Equals, "testing 42")
c.Assert(errors.Cause(err), gc.Equals, err)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["embedErr"].String())
}
开发者ID:ehalpern,项目名称:go-mysql-elasticsearch,代码行数:9,代码来源:error_test.go
示例9: TestAnnotatef
func (*functionSuite) TestAnnotatef(c *gc.C) {
first := errors.New("first")
err := errors.Annotatef(first, "annotation %d", 2) //err annotatefTest
c.Assert(err.Error(), gc.Equals, "annotation 2: first")
c.Assert(errors.Cause(err), gc.Equals, first)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["annotatefTest"].String())
c.Assert(errors.Annotatef(nil, "annotate"), gc.IsNil)
}
开发者ID:CowLeo,项目名称:qdb,代码行数:9,代码来源:functions_test.go
示例10: sendError
// sendError sends a JSON-encoded error response.
// Note the difference from the error response sent by
// the sendError function - the error is encoded in the
// Error field as a string, not an Error object.
func (h *charmsHandler) sendError(w http.ResponseWriter, req *http.Request, err error) {
logger.Errorf("returning error from %s %s: %s", req.Method, req.URL, errors.Details(err))
perr, status := common.ServerErrorAndStatus(err)
sendStatusAndJSON(w, status, ¶ms.CharmsResponse{
Error: perr.Message,
ErrorCode: perr.Code,
ErrorInfo: perr.Info,
})
}
开发者ID:pmatulis,项目名称:juju,代码行数:13,代码来源:charms.go
示例11: TestNewErrWithCause
func (*errorsSuite) TestNewErrWithCause(c *gc.C) {
if runtime.Compiler == "gccgo" {
c.Skip("gccgo can't determine the location")
}
causeErr := fmt.Errorf("external error")
err := newEmbedWithCause(causeErr, "testing %d", 43) //err embedCause
c.Assert(err.Error(), gc.Equals, "testing 43: external error")
c.Assert(errors.Cause(err), gc.Equals, causeErr)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["embedCause"].String())
}
开发者ID:ehalpern,项目名称:go-mysql-elasticsearch,代码行数:10,代码来源:error_test.go
示例12: main
func main() {
err := fmt.Errorf("%s", "error msg here")
err2 := fmt.Errorf("err2: %s", err)
fmt.Println(err2)
err = errors.Trace(err)
//err = errors.Annotatef(err, "error has been traces and annotated")
fmt.Println(err)
fmt.Println("details:", errors.Details(err))
fmt.Println("stack trace:", errors.ErrorStack(err))
}
开发者ID:leonzhouwei,项目名称:go-demo,代码行数:11,代码来源:main.go
示例13: TestDetails
func (s *functionSuite) TestDetails(c *gc.C) {
if runtime.Compiler == "gccgo" {
c.Skip("gccgo can't determine the location")
}
c.Assert(errors.Details(nil), gc.Equals, "[]")
otherErr := fmt.Errorf("other")
checkDetails(c, otherErr, "[{other}]")
err0 := newEmbed("foo") //err TestStack#0
checkDetails(c, err0, "[{$TestStack#0$: foo}]")
err1 := errors.Annotate(err0, "bar") //err TestStack#1
checkDetails(c, err1, "[{$TestStack#1$: bar} {$TestStack#0$: foo}]")
err2 := errors.Trace(err1) //err TestStack#2
checkDetails(c, err2, "[{$TestStack#2$: } {$TestStack#1$: bar} {$TestStack#0$: foo}]")
}
开发者ID:CowLeo,项目名称:qdb,代码行数:18,代码来源:functions_test.go
示例14: TestDeferredAnnotatef
func (*functionSuite) TestDeferredAnnotatef(c *gc.C) {
// NOTE: this test fails with gccgo
if runtime.Compiler == "gccgo" {
c.Skip("gccgo can't determine the location")
}
first := errors.New("first")
test := func() (err error) {
defer errors.DeferredAnnotatef(&err, "deferred %s", "annotate")
return first
} //err deferredAnnotate
err := test()
c.Assert(err.Error(), gc.Equals, "deferred annotate: first")
c.Assert(errors.Cause(err), gc.Equals, first)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["deferredAnnotate"].String())
err = nil
errors.DeferredAnnotatef(&err, "deferred %s", "annotate")
c.Assert(err, gc.IsNil)
}
开发者ID:CowLeo,项目名称:qdb,代码行数:19,代码来源:functions_test.go
示例15: Activate
// Activate makes the staged resource the active resource.
func (staged StagedResource) Activate() error {
buildTxn := func(attempt int) ([]txn.Op, error) {
// This is an "upsert".
var ops []txn.Op
switch attempt {
case 0:
ops = newInsertResourceOps(staged.stored)
case 1:
ops = newUpdateResourceOps(staged.stored)
default:
return nil, errors.New("setting the resource failed")
}
if staged.stored.PendingID == "" {
// Only non-pending resources must have an existing service.
ops = append(ops, staged.base.ServiceExistsOps(staged.stored.ServiceID)...)
}
// No matter what, we always remove any staging.
ops = append(ops, newRemoveStagedResourceOps(staged.id)...)
// If we are changing the bytes for a resource, we increment the
// CharmModifiedVersion on the service, since resources are integral to
// the high level "version" of the charm.
if staged.stored.PendingID == "" {
hasNewBytes, err := staged.hasNewBytes()
if err != nil {
logger.Errorf("can't read existing resource during activate: %v", errors.Details(err))
return nil, errors.Trace(err)
}
if hasNewBytes {
incOps := staged.base.IncCharmModifiedVersionOps(staged.stored.ServiceID)
ops = append(ops, incOps...)
}
}
logger.Debugf("activate ops: %#v", ops)
return ops, nil
}
if err := staged.base.Run(buildTxn); err != nil {
return errors.Trace(err)
}
return nil
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:42,代码来源:resources_persistence_staged.go
示例16: checkDetails
func checkDetails(c *gc.C, err error, details string) {
c.Assert(err, gc.NotNil)
expectedDetails := replaceLocations(details)
c.Assert(errors.Details(err), gc.Equals, expectedDetails)
}
开发者ID:CowLeo,项目名称:qdb,代码行数:5,代码来源:package_test.go
示例17: TestControllerUUIDExists
func (s *RegisterSuite) TestControllerUUIDExists(c *gc.C) {
// Controller has the UUID from s.testRegister to mimic a user with
// this controller already registered (regardless of its name).
err := s.store.AddController("controller-name", jujuclient.ControllerDetails{
ControllerUUID: mockControllerUUID,
CACert: testing.CACert,
})
s.listModels = func(_ jujuclient.ClientStore, controllerName, userName string) ([]base.UserModel, error) {
return []base.UserModel{{
Name: "model-name",
Owner: "bob",
UUID: mockControllerUUID,
}}, nil
}
registrationData := s.encodeRegistrationData(c, jujuclient.RegistrationInfo{
User: "bob",
SecretKey: mockSecretKey,
ControllerName: "controller-name",
})
srv := s.mockServer(c)
s.httpHandler = srv
prompter := cmdtesting.NewSeqPrompter(c, "»", `
Enter a new password: »hunter2
Confirm password: »hunter2
Initial password successfully set for bob.
`[1:])
err = s.run(c, prompter, registrationData)
c.Assert(err, gc.ErrorMatches, `controller is already registered as "controller-name"`, gc.Commentf("details: %v", errors.Details(err)))
prompter.CheckDone()
}
开发者ID:bac,项目名称:juju,代码行数:36,代码来源:register_test.go
示例18: TestErrorf
func (*functionSuite) TestErrorf(c *gc.C) {
err := errors.Errorf("testing %d", 42) //err errorfTest
c.Assert(err.Error(), gc.Equals, "testing 42")
c.Assert(errors.Cause(err), gc.Equals, err)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["errorfTest"].String())
}
开发者ID:CowLeo,项目名称:qdb,代码行数:6,代码来源:functions_test.go
示例19: TestNew
func (*functionSuite) TestNew(c *gc.C) {
err := errors.New("testing") //err newTest
c.Assert(err.Error(), gc.Equals, "testing")
c.Assert(errors.Cause(err), gc.Equals, err)
c.Assert(errors.Details(err), jc.Contains, tagToLocation["newTest"].String())
}
开发者ID:CowLeo,项目名称:qdb,代码行数:6,代码来源:functions_test.go
注:本文中的github.com/juju/errors.Details函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论