douque2016 2018-02-27 10:16
浏览 7
已采纳

Go语言错误处理问题/误解? [关闭]

Ok so I am using the following code,

err := r.ParseForm()
if err != nil {
    log.Panic(err)
}

var user User

err := decoder.Decode(&user, r.PostForm)
if err != nil {
    log.Panic(err)
}

Now when I try to run this code, I get the following error,

no new variables on left side of :=

Now I know that this is due to using the same variable, in this case err but I have seen lots of examples where this is how other developers deal with error handling?

The way that I have been using is just to use err1 and err2 so I can build the code.

I have been over the docs but there is a lot to take in and must have missed how the err variable is being able to be re-used, or have I completely misunderstood something?

Thanks,

  • 写回答

2条回答 默认 最新

  • duanli4146 2018-02-27 10:30
    关注

    You redeclared the variable err. What you often see is the shorter error handling syntax:

    if err := DoSomething(); err != nil {
        // handle
    }
    

    Variables declared in control structures and for loops are only visible to that block. So the err declared above can only be seen within the if block.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口