Size: a a a

2021 May 24

MM

Mansur Mansurov in Go-go!
Ну, условно http слой должен как то реагировать на возникновение ошибок которые формируются в слое service, а они оттуда прилетают уже обернутые и вот как-то адекватно реагировать надо и слать клиенту логичные и осмысленные вещи, а не раскрывать кишки, что монга к примеру не справилась с вставкой (я условно привел пример)
источник

MM

Mansur Mansurov in Go-go!
И вот хотелось бы какие нибудь примеры, как люди работают в таких случаях с ошибками, как менеджат правильную обработку
источник

MM

Mansur Mansurov in Go-go!
Не отрицаю, возможно я фундаментально смотрю не верно на это
источник

с

сонная википедия... in Go-go!
https://t.me/gogolang/446071
а такое не подойдет?
источник

AK

Andrey Kartashov in Go-go!
так ты оборачиваешь Num2Err
источник

с

сонная википедия... in Go-go!
я так понял, что нужно обе ошибки обернуть
источник

l

lrrr_lrrr in Go-go!
Совсем непонятно =) вы не хотите знать что упала именно вставка в монгу, но пытаетесь именно до этой ошибки и докопаться(судя по вашему изначальному примеру)?

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

с

сонная википедия... in Go-go!
что было true true
источник

AK

Andrey Kartashov in Go-go!
@pugnack  если тебе нужна цепочка ошибок, то вот так работает:

var Num1Err = errors.New("error #1")
var Num2Err = fmt.Errorf("%s: %w", "error #2", Num1Err)
var Num3Err = fmt.Errorf("%s: %w", "final error", Num2Err)
fmt.Println(errors.Is(Num3Err, Num1Err)) // true
fmt.Println(errors.Is(Num3Err, Num2Err)) //true
источник

AK

Andrey Kartashov in Go-go!
мне кажется, товарищу надо "всплывающую" ошибку оборачивать по выходу из цепочки вызовов
источник

MM

Mansur Mansurov in Go-go!
товарищи, спасибо за предложения, пища для размышлений есть, буду обдумывать
источник

MM

Mansur Mansurov in Go-go!
ну со вставкой в монгу пример конечно получился неудачный, но да, я Вас понял
источник

JF

Jimmy Fallon in Go-go!
Народ есть кто может помочь переделать готовый софт , вопрос срочный https://github.com/maded2/plotng
источник

JF

Jimmy Fallon in Go-go!
Кому интересно напишите лс
источник

АК

Александр Костюченко... in Go-go!
Вы бы ценник и задачу сразу написали - быстрее бы откликнулись
источник

М

Марк Егоров... in Go-go!
Может глупый вопрос, но как мне в UDP сервере вытащить dst прилетевшего пакетика?

Перебрал уже все методы, но ничего такого.

Суть проблемы в том, что если сервер биндится на 0.0.0.0, а интерфейсов больше одного, то он начинает отвечать не с тем src, на который пришел запрос. В итоге клиент такой ответ дропает.

Соответственно хочу посмотреть dst пакета, запомнить ip и потом подставить его при реплае в качестве src своего
источник

DP

Daniel Podolsky in Go-go!
биндится надо на ipv6 localhost, тогда все ок
источник

DP

Daniel Podolsky in Go-go!
сам я не проверял, но @pragus убедительно говорил, что так
источник

М

Марк Егоров... in Go-go!
Ну, у нас бинд идет на lo и конкретный ip. Тогда всё хорошо. Но легаси умеет биндиться на 0.0.0.0  и отвечать как положено.

А иногда бывает, что нужно именно 0.0.0.0 включить чтобы пустить трафик с другого интерфейса
источник

М

Марк Егоров... in Go-go!
И затея на словах(с dst) вроде верная и кажется простой, но я не могу найти разбор хедера.

Это в net.
источник