Я выполняю сервер на golnag, и мне нужно выполнить команду SNMP для многих устройств, некоторые из этих устройств не могут иметь соединения (или потеряли его временно)
И я хочу сообщение "нет соединения" или "Ошибка" и затем продолжить выполнение программы
Ubuntu 18.04 // go 1.8 // go SNMP с https://github.com/soniah/gosnmp
package main
import (
"fmt"
"log"
"time"
g "github.com/soniah/gosnmp"
)
func main() {
g.Default.Target = string("192.168.10.1")
err := g.Default.Connect()
if err != nil {
log.Fatalf("Connect() err: %v", err)
fmt.Println("Fail connection") // want this message in this case !!!!!
}
defer g.Default.Conn.Close()
oids := []string{"1.3.6.1.2.1.1.4.0", "1.3.6.1.2.1.1.7.0"}
result, err2 := g.Default.Get(oids)
if err2 != nil {
log.Fatalf("Get() err: %v", err2)
fmt.Println("Error read OID") // want this message in this case !!!!!
}
for i, variable := range result.Variables {
fmt.Printf("%d: oid: %s ", i, variable.Name)
switch variable.Type {
case g.OctetString:
fmt.Printf("string: %s\n", string(variable.Value.([]byte)))
default:
fmt.Printf("number: %d\n", g.ToBigInt(variable.Value))
}
}
}
я получаю этот результат, если нет соединения, и нарушаю ход пограмм
2019/05/19 15:11:33 Get() err: Request timeout (after 3 retries)
exit status 1
Я хочу что-то вроде этого
"Fail connection" or "Error read OID"
А затем я хочу продолжить выполнение программы