Дано:
type A struct{}
func New() *A {
return &A{}
}
Какая рекомендация основана на лучшей практике для обработки ошибки, возникающей во время строительства?
Реальный сценарий построения time.Time
для определенного time.Location
на основе некоторого location string
, который может быть недействительным.
EDIT:
Это больше, чем "если конструктор func вернет ошибку". Я хотел бы обсудить альтернативы.
Например, если он не возвращает ошибку, возможно, мы не разрешаем передавать значения в конструктор, которые могут привести к ошибке.
Я хотел бы рассмотреть достоинства различных подходов.
РЕДАКТИРОВАТЬ 2:
Возможные подходы:
- вернуть ошибку в конструкторе
- только возвращает допустимую структуру и не допускает потенциально недопустимых параметров конструктора
- возвращать экземпляр структуры nil при ошибке
РЕДАКТИРОВАТЬ 3:
Критерии рейтинга
- Линии телефонного кода
- Строки собственного кода
- Уровень неопределенности