GoFrame错误处理常用方法及错误码使用示例

 更新时间:2022年6月25日 14:46  点击:329 作者:王中阳Go

前言

这篇文章将为大家介绍:GoFrame 错误处理的常用方法&错误码的使用。如何自定义错误对象、如何忽略部分堆栈信息、如何自定义错误码的返回、如何获取error对象中的错误码。

错误创建

New/Newf

用于创建一个自定义错误信息的error对象,并包含堆栈信息。

New(text string) error
Newf(format string, args ...interface{}) error

Wrap/Wrapf

用于包裹其他错误error对象,构造成多级的错误信息,包含堆栈信息。

func Wrap(err error, text string) error
func Wrapf(err error, format string, args ...interface{}) error

NewSkip/NewSkipf

用于创建一个自定义错误信息的error对象,并且忽略部分堆栈信息(按照当前调用方法位置往上忽略)。高级功能,一般开发者很少用得到。

func NewSkip(skip int, text string) error 
func NewSkipf(skip int, format string, args ...interface{}) error

错误码使用

错误码相关方法概览

func NewCode(code int, text string) error
func NewCodef(code int, format string, args ...interface{}) error
func NewCodeSkip(code, skip int, text string) error
func NewCodeSkipf(code, skip int, format string, args ...interface{}) error
func WrapCode(code int, err error, text string) error
func WrapCodef(code int, err error, format string, args ...interface{}) error

NewCode/NewCodef

功能同New/Newf方法,用于创建一个自定义错误信息的error对象,并包含堆栈信息,并增加错误码对象的输入。

NewCode(code gcode.Code, text ...string) error
NewCodef(code gcode.Code, format string, args ...interface{}) error

示例代码

func ExampleNewCode() {
    err := gerror.NewCode(gcode.New(101, "", nil), "My Error")
    fmt.Println(err.Error())    // My Error
    fmt.Println(gerror.Code(err))    //101
}
func ExampleNewCodef() {
    err := gerror.NewCodef(gcode.New(101, "", nil), "It's %s", "My Error")
    fmt.Println(err.Error()) //It's My Error
    fmt.Println(gerror.Code(err).Code()) //101
}

WrapCode/WrapCodef

功能同Wrap/Wrapf方法,用于包裹其他错误error对象,构造成多级的错误信息,包含堆栈信息,并增加错误码参数的输入。

WrapCode(code gcode.Code, err error, text ...string) error
WrapCodef(code gcode.Code, err error, format string, args ...interface{}) error

示例代码

func ExampleWrapCode() {
    err1 := errors.New("permission denied")
    err2 := gerror.WrapCode(gcode.New(403, "", nil), err1, "Custom Error")
    fmt.Println(err2.Error())     // Custom Error: permission denied
    fmt.Println(gerror.Code(err2).Code())    // 403
}
func ExampleWrapCodef() {
    err1 := errors.New("permission denied")
    err2 := gerror.WrapCodef(gcode.New(403, "", nil), err1, "It's %s", "Custom Error")
    fmt.Println(err2.Error())    // It's Custom Error: permission denied
    fmt.Println(gerror.Code(err2).Code())    // 403
}

NewCodeSkip/NewCodeSkipf

功能同NewSkip/NewSkipf,用于创建一个自定义错误信息的error对象,并且忽略部分堆栈信息(按照当前调用方法位置往上忽略),并增加错误参数输入。

func NewCodeSkip(code, skip int, text string) error
func NewCodeSkipf(code, skip int, format string, args ...interface{}) error

获取error中的错误码接口

func Code(err error) gcode.Code

当给定的error参数不带有错误码信息时,该方法返回预定义的错误码gcode.CodeNil

总结

通过这篇文章我们了解到使用GoFrame,如何自定义错误对象、如何忽略部分堆栈信息、如何自定义错误码的返回、如何获取error对象中的错误码。

以上就是GoFrame错误处理常用方法及错误码使用示例的详细内容,更多关于GoFrame错误处理错误码的资料请关注猪先飞其它相关文章!

原文出处:https://juejin.cn/post/7112428421392629773

[!--infotagslink--]

相关文章

  • 安卓开发提示Android Read-only file system 错误处理

    安卓开发提示Android Read-only file system 错误处理办法,有需要学习的机友可参考参考。 以超级管理员root执行 代码如下 复制代码 “...2016-09-20
  • asp.net错误处理Application_Error事件示例

    Application_Error事件与Page_Error事件相类似,可使用他捕获发生在应用程序中的错误。由于事件发生在整个应用程序范围内,因此您可记录应用程序的错误信息或处理其他可能发生的应用程序级别的错误...2021-09-22
  • php 错误处理与异常处理方法与实例教程(1/2)

    在程序开发中,错误处理这一块是非常重要的,今天本文章就来告诉他关于在php开发中,错误处理函数并且举例说明错误处理的重要性。 1、内置异常处理类。 2、捕获并...2016-11-25
  • 解决idea找不到或无法加载主类的错误处理

    这篇文章主要介绍了解决idea找不到或无法加载主类的错误处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-03
  • PHP7错误处理机制详解介绍

    下面我们来看一篇关于PHP7错误处理机制详解介绍,对于php7新特性我们有介绍过不小的教程,希望文章能够帮助到各位朋友。 HP7实现了一个全局的throwable接口,原来的Exc...2016-11-25
  • SQLite 错误码整理

    这篇文章主要介绍了SQLite 错误码,方便大家在开发过程中快速解决问题...2020-07-11
  • php异常错误处理机制与错误处理(1/2)

    在php中我们用到最常用的错误机制有try catch{}这个来处理可以很方便面的捕捉到错误,但在php中对于很多还提供了错误查看和错误关闭这个可以在php.ini中处理也可以在文...2016-11-25
  • Powershell错误处理之what-if

    这篇文章主要介绍了Powershell错误处理之what-if的相关资料,需要的朋友可以参考下...2020-06-30
  • PHP错误处理及异常处理笔记

    在php中错误处理是一个比较实用的东西了,在大家程序开发测试过程中错误处理及异常处理是我们必须要了解的,这样才可以很好的提升工作速度了。 给新人总结一下PHP的...2016-11-25
  • 基于errno返回值的对应错误码的详细介绍

    本篇文章是对errno返回值的对应错误码进行了详细的分析介绍,需要的朋友参考下...2020-04-25
  • PHP实现抓取HTTPS内容的方法和错误处理

    下面我们来看一篇关于 PHP实现抓取HTTPS内容的方法和错误处理的教程希望这篇教程能够帮助到各位朋友。 最近在研究Hacker News API时遇到一个HTTPS问题。因为所...2016-11-25
  • asp.net错误捕获(错误处理)page_error事件使用方法

    Page_Error事件提供了一种捕获页面级错误的方法。对于错误的处理,您可以只是显示错误信息(正如下面的示例代码所示),也可以记录事件或执行某个其他操作...2021-09-22
  • PDO 中相关的错误处理

    面向对象的方式 先看看如果连接错误等的处理,PHP中PDO的错误处理,使用面向对象的方式来处理: <?php教程 try {  $db = new PDO('mysql教程:host=localhost;dbname=test...2016-11-25
  • 利用PHP自定义错误处理器处理出错信息

    假如您是PHP老手,当然知道当PHP脚本出错时发生了什么事情。此时PHP解析器将在屏幕上给出错误信息,如 Fatal error: Call to undefined function on line 19 --,因此程序在...2016-11-25
  • PHP错误处理方法总结

    在php中错误处理的方法有很多,特别是到了php5之后还提供了专门的php处理类,下面我收藏了关于PHP错误处理一些方法与程序分享给大家。 在程序中直接判断 基本的错误...2016-11-25
  • PHP 自定义错误处理函数

    在php开发中我们一般会使用php自带的错误处理方法来处理一些错误,但是有些我们需要自定义一些错误处理机制来解决系统自带不能解决的问题。 基本的错误处理:使用 di...2016-11-25
  • 使用PHP的错误处理

      在web 上所有常见的错误之一就是无效的链接。一旦从其它站点上出现了无效的链接,你会重新安排你的站点。人们会将他们喜欢的站点存成书签,如果在三个月后再次访问时...2016-11-25
  • PHP错误处理函数

    在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息...2016-04-07
  • PHP中错误处理的一些方法

    已经玩php一段时间了,基本是from0开始的,经常出现的问题也很多,慢慢的可以熟练的查询文档了,而且,经验也不是很多。   先lookhere。: error_reporting(1048);//1,2,4,7,...,1048...2016-11-25
  • PHP 7错误处理机制介绍

    下面我们和小编来看一篇关于PHP 7错误处理机制介绍,希望这篇文章能够让各位了解到PHP 7错误处理机制吧. PHP 7 改变了大多数错误的报告方式。不同于传统(PHP 5)的错...2016-11-25