Условный тест для DNSError IsNotFound - PullRequest
0 голосов
/ 16 апреля 2020

Я использую пакет net для поиска DNS, например:

hostnames, err := net.LookupAddr("192.168.0.1")
if err != nil {
    // Do something
}

Вместо того, чтобы смело (глупо?) Предполагать, что любая ошибка означает то же самое, я хотел бы проверить состояние IsNotFound bool в DNSError . Может ли кто-нибудь предоставить идиоматический c пример того, как структурировать условное выражение, которое проверяет ошибку, является DNSError и, если это так, что IsNotFound bool имеет значение true / false?

Спасибо

1 Ответ

1 голос
/ 17 апреля 2020

Вы можете сделать это, приведя к ошибке DNSError.

if err != nil {
    if e, ok := err.(*net.DNSError); ok && e.IsNotFound {
        // err is a NotFound DNSError
    } else {
        // ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...