Go 尝试:除了:通过但进入?(当出现网络问题时,使运行不崩溃?)

Go 尝试:除了:通过但进入?(当出现网络问题时,使运行不崩溃?),go,Go,有时我试图刮取一个页面(几个RSS和图像站点),但有时出现连接错误时,我会遇到问题 如何处理Go错误而不必处理/处理Go错误而不导致自身崩溃 package main import ( "fmt" "math/rand" "sync" "time" ) type Manager struct { threadCount int } v

有时我试图刮取一个页面(几个RSS和图像站点),但有时出现连接错误时,我会遇到问题

如何处理Go错误而不必处理/处理Go错误而不导致自身崩溃

package main

import (
    "fmt"
    "math/rand"
    "sync"
    "time"
)

type Manager struct {
    threadCount                     int
}
var (
    message                 = map[string]interface{}{}
    messageMutex            = sync.RWMutex{}
)

func startGo(bManager Manager) {
    for{
        messageMutex.RLock()
        fmt.Println("hey")
        ScrapeImages()
        messageMutex.RUnlock()
    }
}    

func main() {
    rand.Seed(time.Now().UnixNano())
    
    stall := make(chan struct{})
    bManager := Manager{
        threadCount:     5,
    }

    for i := 0; i < bManager.threadCount; i++ {
        go startGo(bManager)
    }
    <-stall
}
主程序包
进口(
“fmt”
“数学/兰德”
“同步”
“时间”
)
类型管理器结构{
线程计数整数
}
变量(
message=map[string]接口{}{}
messageMutex=sync.RWMutex{}
)
职能启动官(B经理){
为了{
messageMutex.RLock()
fmt.Println(“嘿”)
()
messageMutex.RUnlock()
}
}    
func main(){
rand.Seed(time.Now().UnixNano())
暂停:=make(chan结构{})
b管理者:=管理者{
线程数:5,
}
对于i:=0;iGo鼓励程序员处理错误,而不是忽略错误。有关详细信息,请参阅本文:

也就是说,Go也不会“出现网络问题时崩溃”。出现问题时,
net/http
函数将返回错误,您可以根据需要在程序中处理这些错误。例如,在您的情况下,
ScrapImages
可能会返回
错误


如果您有
panics
s的代码,您可以使用
recover
捕捉恐慌并以某种方式作出反应。这与Python的
非常相似,除了:pass
,正如您所提到的。例如,
net/http
http服务器通过注销错误并继续提供ot来从处理程序中的恐慌中恢复她的请求。因此,在处理一个请求时出现的恐慌不会使整个服务器崩溃。

那么,您不想检查错误,对吗?请创建一个最小的、可复制的示例:--您的代码不显示
剪贴画
。不幸的是,您的问题显示出缺乏非常基本的Go基础。请开始,尤其是从开始。