К сожалению, документация об ошибках golang в стандартной библиотеке практически отсутствует.например, просто открывая файл, возвращаемые значения для ошибки не документированы, за исключением того, что вы можете напечатать строку.Но это не всегда верный способ справиться с этим.
Есть ли способ определить, каким может быть настоящий код ошибки, методом проб и ошибок, а не просто распечатывать текст?Кажется глупым сопоставлять весь текст для конкретной ошибки.
например, учитывая, что я хочу в конечном итоге добиться чего-то подобного (при условии, что это правильно)
if fd, err := io.Open("filename"); err != nil {
if err != io.ErrFileNotFound {
log.Fatalf("Error opening file: %s", err)
}
}
Насколько я могу сказать что-нибудькоторый реализует интерфейс ошибки, может быть использован как ошибка.Но я пытаюсь определить, в чем заключается ошибка.Ошибка может быть структурой, в которой есть другие поля, такие как числовое поле, чтобы указать мне, какой тип ошибки, кроме самого текста.Но как я узнаю, какие другие данные содержится в ошибке, кроме просмотра многих исходных файлов и иногда десятков вызовов функций.
Имеет ли это смысл?
В качестве более практического примера.Я использую библиотеку yaml для загрузки файла конфигурации.Если файл конфигурации не существует, я хочу продолжить (он будет использовать значения по умолчанию).Но если есть ошибка прав доступа, я хочу, чтобы ошибка считалась фатальной.Проблема в том, что не совсем понятно, как ошибка будет выглядеть раньше времени.