您的位置:58编程 > goframe文档 GoFrame 错误处理-其他特性

goframe文档 GoFrame 错误处理-其他特性

2023-03-15 10:33 GoFrame教程

goframe文档 GoFrame 错误处理-其他特性

goframe文档

GoFrame 是一个基于 Go 语言的 Web 开发框架,它提供了一系列的功能,可以帮助开发者快速构建出高性能、高可用的 Web 应用。GoFrame 是一个开源的项目,它是由 Go 语言社区中的一群志愿者们共同开发而成,旨在为 Go 语言开发者提供一个简单易用、功能完善、性能优越的 Web 开发框架。

GoFrame 的文档是该项目最重要的部分之一,它包含了 GoFrame 的所有相关信息,包括安装、使用、API 文档等。文档中还包含了很多有用的教程和代码样例,帮助开发者快速上手 GoFrame。

GoFrame 的文档分为三大部分:
1. 介绍部分:介绍 GoFrame 的特性、原理和优势。
2. 教程部分:详细介绍如何使用 GoFrame 来开发 Web 应用。
3. API 部分:详尽地介绍了 GoFrame 中所有 API 的使用方法。

此外,GoFrame 还有一个十分实用的命令行工具 gof (Go Frame Command Line Tool ) ,它可以帮助开发者快速生成项目代码、运行测试代码、生成 API 文档和进行其他常见的工作。

gof -h // 查看 gof 工具使用方法 
gof new project // 创建新项目 
gof run test // 运行测试代码 
gof gen doc // 生成 API 文档

GoFrame 错误处理-其他特性

NewOption自定义配置的错误对象创建

  • 说明:用于自定义配置的错误对象创建。
  • 格式:
NewOption(option Option) error
  • 示例:
func ExampleNewOption() {
 	err := gerror.NewOption(gerror.Option{
		Text: "this feature is disabled in this storage",
		Code: gcode.CodeNotSupported,
	})
}

fmt 格式化

通过以上示例我们可以看到,通过​%+v​的打印格式可以打印出完整的堆栈信息,当然​gerror.Error​对象支持多种fmt格式:

 格式符  输出内容
 ​%v,%s  打印所有的层级错误信息,构成完成的字符串返回,多个层级使用​​拼接
 ​%-v​,​%-s  打印当前层级的错误信息,返回字符串
 ​%+s  打印完整的堆栈信息列表
 ​%+v  打印所有的层级错误信息字符串,以及完整的堆栈信息,等同于​%sn%+s

使用示例:

package main

import (
	"errors"
	"fmt"
	"github.com/gogf/gf/v2/errors/gerror"
)

func main() {
	var err error
	err = errors.New("sql error")
	err = gerror.Wrap(err, "adding failed")
	err = gerror.Wrap(err, "api calling failed")
	fmt.Printf(" %%s: %sn", err)
	fmt.Printf("%%-s: %-sn", err)
	fmt.Println("%+s: ")
	fmt.Printf("%+sn", err)
}

// Output:
//  %s: api calling failed: adding failed: sql error
// %-s: api calling failed
// %+s:
// 1. api calling failed
//     1).  main.main
//         /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:14
// 2. adding failed
//     1).  main.main
//         /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:13
// 3. sql error

日志输出支持

glog​日志管理模块天然支持对​gerror​错误堆栈打印支持,这种支持不是强耦合性的,而是通过​fmt​格式化打印接口支持的。

使用示例:

package main

import (
	"errors"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/errors/gerror"
)

func main() {
	var err error
	err = errors.New("sql error")
	err = gerror.Wrap(err, "adding failed")
	err = gerror.Wrap(err, "api calling failed")
	g.Log().Printf("%+v", err)
}

// Output:
// 2020-10-17 15:22:26.793 api calling failed: adding failed: sql error
// 1. api calling failed
//     1).  main.main
//         /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:14
// 2. adding failed
//     1).  main.main
//         /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go:13
// 3. sql error


阅读全文
以上是58编程为你收集整理的goframe文档 GoFrame 错误处理-其他特性全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS