当前位置: 首页 > news >正文

西安中风险地区seo与网站建设的关联

西安中风险地区,seo与网站建设的关联,网站如何做交换链接,wordpress这么卡如果你习惯了 try catch 这样的语法后#xff0c;会觉得处理错误真简单#xff0c;然后你再来接触 Go 的错误异常#xff0c;你会发现他好复杂啊#xff0c;怎么到处都是 error#xff0c;到处都需要处理 error。 首先咱们需要知道 Go 语言里面有个约定#xff0c;就是一… 如果你习惯了 try catch 这样的语法后会觉得处理错误真简单然后你再来接触 Go 的错误异常你会发现他好复杂啊怎么到处都是 error到处都需要处理 error。 首先咱们需要知道 Go 语言里面有个约定就是一个方法的返回参数我们通常习惯的把错误当最后一个参数返回这虽然官方在这点上没有做硬性规定但是大家也都习惯这么做。 至于为啥 Go 要这样去设计处理异常咱们这种干饭人事就不去分析了官方怎么设计咱们就怎么遵守就好了。 一、简单错误创建 1、 errors  我们可以使用 errors 包的 New 方法传入一个字符串快速地创建。 var e error e errors.New(我是错误) 2、fmt  fmt 可以输出一些内容同样他还能为我们创建错误。 var e error e fmt.Errorf(%s, 我还是错误) 其实错误对 Go 语言来说其实就是一段字符串。 二、对错误进行编程 Go 语言中的错误定义是一个借口只要是声明了 Error() string 这个方法就意味着他就可以判定他是一个错误。 这是 Go 中的错误定义源码 // The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type error interface {Error() string } 1、自定义错误使用 package mainimport (fmt )type MyError string// 实现了Error的接口 func (this MyError) Error() string {return string(this) } func main() {var e errore MyError(自定义的错误)fmt.Println(e) } 2、友好地返回错误 可以把 string 换成 struct 同时加入很多我们自定义的属性 package mainimport (fmt )type MyError struct {Code intMsg string }func (this MyError) Error() string {return fmt.Sprintf(%d-%s, this.Code, this.Msg) }func NewMyError(code int, msg string) *MyError {return MyError{Code: code, Msg: msg} }// FindUser 模拟下我们的业务方法 func FindUser() error {return NewMyError(404, 找不到内容) }func main() {var e errore FindUser()fmt.Println(e) }三、错误的api 1、Is  官方为我们提供了 Is 方法的 API他默认使用 将特定的错误与错误链中的错误进行比较如果不一样就会去调用错误实现的 Is 方法进行比较。 先去实现下 Is 这个方法随后我们使用 errors.Is 进行比较  package mainimport (errorsfmtlog )type MyError struct {Code intMsg string }func (this MyError) Error() string {return fmt.Sprintf(%d-%s, this.Code, this.Msg) }func NewMyError(code int, msg string) *MyError {return MyError{Code: code, Msg: msg} }// FindUser 模拟下我们的业务方法 func FindUser() error {return NewMyError(404, 找不到内容) }func (this *MyError) Is(target error) bool {log.Println(到这里来了....)if inputE, ok : target.(*MyError); ok {if inputE.Code this.Code inputE.Msg this.Msg {return true}}return false }func main() {var e errore FindUser()log.Println(e)if errors.Is(e, NewMyError(404, 找不到内容)) {log.Println(是 ErrorNotFind)} else {log.Println(不是 ErrorNotFind)}if errors.Is(e, NewMyError(405, 找不到内容)) {log.Println(是 ErrorNotFind)} else {log.Println(不是 ErrorNotFind)}if errors.Is(e, NewMyError(404, 这是xxx错误)) {log.Println(是 ErrorNotFind)} else {log.Println(不是 ErrorNotFind)} }还可以有复杂的结构体来表示错误 2、Unwrap 不大常用的 API 标准库里面 fmt.Errorf 就是一个非常典型的使用案例 package mainimport (errorsfmtlog )type MyError struct {Code intMsg string }func (this MyError) Error() string {return fmt.Sprintf(%d-%s, this.Code, this.Msg) }func NewMyError(code int, msg string) *MyError {return MyError{Code: code, Msg: msg} }// FindUser 模拟下我们的业务方法 func FindUser() error {return NewMyError(404, 找不到内容) }func (this *MyError) Unwrap() error {this.Msg hello this.Msgreturn this }func main() {var e errore FindUser()log.Println(最原始的错误, e)wE : errors.Unwrap(e)log.Println(加了上下文的错误, wE) }
http://www.zqtcl.cn/news/118927/

相关文章:

  • 做国际贸易做什么网站遵义做网站优化
  • 电商平台正在建设中网站页面提示开发手机网站用什么好
  • 电商设计素材网站推荐百度云app下载安装
  • 网站怎样和首页做链接地址百度怎么打广告在首页
  • 眉县做网站网站开发技术可行性分析
  • 深圳求职网站哪个好网站上面的在线咨询是怎么做的
  • 做饰品一般用什么网站做首饰凡客数据
  • 工业电商做网站怎么样wordpress 韩国 主题
  • 网站的优化从几个方面网站建设需注意哪些事项
  • 网站建设的技术有哪些内容东莞网站建设最优
  • 网站建设税费很多网站没有后台
  • 百度云主机上装网站flash怎么做网页
  • 外贸网站能用阿里云吗哔哩哔哩网页版打不开
  • 南宁月嫂网站建设财经直播的网站开发一个多少钱
  • 宁波网站的建设百度网盟推广 网站
  • 大连城乡建设局网站青岛网站建设外贸
  • 石家庄网站建设招聘珠海快速网站建设
  • 网站建设代理ai制作网页
  • 微网站平台怎样做网站wordpress侧栏跟随
  • 手机网站建设好吗湖南省专业建设公司网站的机构
  • 网站代码 字体好用的cms网站
  • 美食网站首页设计用手机怎么看自己做的网站
  • 平台类网站开发怎样做永久网站二维码
  • 网站开发客户挖掘php网站开发心得3500字
  • 检察院做网站的目的青岛网站推广优化
  • dede替换网站模板定制网站建设的流程
  • 天津专业网站制作网站开发模板
  • 做二手车网站需要什么怎样建立门户网站
  • 宁波做网站首荐荣盛网络网站建设太仓
  • 购物网站公司要花费多少钱wordpress 菜单 字体加粗