Урок 56 · Задача 1

Safe: паника становится ошибкой

На границе обработчиков «Полки» паника должна стать обычной ошибкой. Реализуйте safe: в defer-функции поймайте панику через recover и превратите её в err = fmt.Errorf("паника: %v", r).

00:00:00
Показать решение
GolangРешение
func safe(f func()) (err error) {
	defer func() {
		if r := recover(); r != nil {
			err = fmt.Errorf("паника: %v", r)
		}
	}()
	f()
	return nil
}
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки