#go
#Вперед
Вопрос:
Рассмотрим следующее:
package main
import (
"errors"
"fmt"
)
func foo() error {
return errors.New("Danger!")
}
func main() {
foo();
fmt.Println("I don't have a care in the world!")
}
Было бы неплохо, если бы существовал простой способ увидеть, что возможные ошибки из foo () не обрабатываются. Есть ли в Go встроенный способ проверки программ / исходных файлов на наличие ошибок, с которыми ничего не было сделано?
Ответ №1:
В Go нет встроенного способа сделать это, но есть сторонний инструмент от Kamil Kisiel, который это делает. Просто go get github.com/kisielk/errcheck
затем запустите bin/errcheck your/import/path
из своего $GOPATH
, и он выдаст список вызовов с игнорируемыми ошибками. (Я только что попробовал это в проекте и, хм, возможно, я не настолько надежен в этом на 100%, как я думал.)
Если вам это нравится, вам также могут понравиться проверки go vet и пакет lint, используемый в Google для проверки стиля.
Комментарии:
1. На самом деле, bin / errcheck никогда не должен находиться под $ GOROOT . Это должно быть в $ GOPATH.
Ответ №2:
Вы можете использовать errcheck:
$ errcheck github.com/your/package
Это даст вам знать, когда вы игнорируете возвращенные ошибки. Я бы сказал, что это должно быть в основном редко, если вы используете приличный редактор (который показывает вам сигнатуры функций).