Go 如何捕获异常并在不退出程序的情况下继续

Go 如何捕获异常并在不退出程序的情况下继续,go,Go,我正在从文本文件传递URL列表。命令如下 cat urls.txt | ./mygofile 如果看到断开的url,它将停止。如何在不退出程序的情况下使其继续?我希望它显示一个简单的错误,并继续到下一个URL而不退出 http://beap.adss.yahoo.com/ http://id.answers.yahoo.com/search https://brokenurl http://id.answers.yahoo.com/KnowledgeSearchService http://i

我正在从文本文件传递URL列表。命令如下

cat urls.txt | ./mygofile
如果看到断开的url,它将停止。如何在不退出程序的情况下使其继续?我希望它显示一个简单的错误,并继续到下一个URL而不退出

http://beap.adss.yahoo.com/
http://id.answers.yahoo.com/search
https://brokenurl
http://id.answers.yahoo.com/KnowledgeSearchService
http://id.answers.yahoo.com/question/nextQuestion
下面是我得到的错误


现在,您的脚本不会中断循环,您所需要的只是停止执行并跳到下一个pUrl。像这样的方法应该会奏效:

req.Header.Add("Content-Type", "application/xml; charset=utf-8")
resp, err := client.Do(req)
if err != nil {
   log.Println(err)
   continue // stop here and process next item
}

有关打印错误但忽略错误的详细信息:

        resp, err := client.Do(req)
        if err != nil {
            log.Println(err)
        }

此时,resp为nil,因为调用失败。如果出现错误,则不应继续处理结果。在if语句中处理错误,或者将错误返回给调用者,以便调用者能够处理它。

Go没有与示例Java相同的try/catch概念。您遇到的是一种恐慌,有一些方法可以从恐慌中恢复,但我更愿意以一种不访问空值的方式编写程序。不要粘贴文本的图像。对我们大多数人来说,它们很难阅读,而对视力受损的人来说,它们是不可能阅读的。它们也不能被索引或搜索。只需将文本复制并粘贴到问题中即可。请注意,代码中不包含解决方案。这是你的密码。你必须设法处理这个错误,上面说第45行是问题所在。。如果你能多帮我一点忙,那就太好了
        resp, err := client.Do(req)
        if err != nil {
            log.Println(err)
        }