Size: a a a

2020 April 13

SJ

SHEROZ Juraev in Go-go!
Pax au Telemanus
документацию win api изучить
Хорошо, спасибо
источник

МП

Мимо Проходящий... in Go-go!
SHEROZ Juraev
Было бы здорово посмотреть. Есть репозиторий в GitHub-е?
вот библиотека, которая юзает виндовз апи в хвост и гриву для гуи https://github.com/lxn/walk
источник

PT

Pax au Telemanus in Go-go!
Anton Kucherov
Во кстати, я все не могу понять, как и когда эту функцию использовать. Обычно ведь ошибку оборачивают, когда хотят сделать ее описание более конкретным и отличать ее от другой ошибки которая произошла по той же причине. Как после этого извлечь эти детали понятно, а как извлечь саму ошибку без деталей, не ясно совсем. Например создал я 2 кастомные ошибки, хоть у них и одна причина:
fooErr := fmt.Errorf("Error while reading foo, reason: %w", io.EOF)
barErr := fmt.Errorf("Error while reading bar, reason: %w", io.EOF)


Как потом работать с fooErr и barErr? Как их различать и как пользователю отобразить их без того что внутри %w. Или я эту концепцию неверно понял вообще?
вот не только я 1 сомневаюсь в надобности такое решения
источник

SJ

SHEROZ Juraev in Go-go!
Мимо Проходящий
вот библиотека, которая юзает виндовз апи в хвост и гриву для гуи https://github.com/lxn/walk
Спасибо
источник

DP

Daniel Podolsky in Go-go!
SHEROZ Juraev
Привет, ребята. Хочу создать программу для отслеживания работы сети компьютеров. И возникает вопрос как обстоять дела Go с Windows API? Нормально или все же на C# писать программу? (C# я не знаю)
вроде норм все. dll подключаются, функции вызываются
источник

PT

Pax au Telemanus in Go-go!
Daniel Podolsky
вроде норм все. dll подключаются, функции вызываются
ну говнокод есть
источник

МП

Мимо Проходящий... in Go-go!
Daniel Podolsky
очень хорошо, на самом деле
в каком смысле? нельзя наследовать от двух ошибок?
источник

DP

Daniel Podolsky in Go-go!
Мимо Проходящий
в каком смысле? нельзя наследовать от двух ошибок?
а зачем бы это было нужно?
источник

PT

Pax au Telemanus in Go-go!
Daniel Podolsky
а зачем бы это было нужно?
ну я такое в пыхе делал в валидаторе

тут нарвеное тоже можно но там не 2 ошибки а безлимит
источник

PT

Pax au Telemanus in Go-go!
ну и сама концепция показывать все ошибки валидатора сразу у меня вызывает сомнения
источник

ss

santiago s in Go-go!
Anton Kucherov
Во кстати, я все не могу понять, как и когда эту функцию использовать. Обычно ведь ошибку оборачивают, когда хотят сделать ее описание более конкретным и отличать ее от другой ошибки которая произошла по той же причине. Как после этого извлечь эти детали понятно, а как извлечь саму ошибку без деталей, не ясно совсем. Например создал я 2 кастомные ошибки, хоть у них и одна причина:
fooErr := fmt.Errorf("Error while reading foo, reason: %w", io.EOF)
barErr := fmt.Errorf("Error while reading bar, reason: %w", io.EOF)


Как потом работать с fooErr и barErr? Как их различать и как пользователю отобразить их без того что внутри %w. Или я эту концепцию неверно понял вообще?
вот это интересный момент и это как раз про frm.Errorf("%w %w") :)

ну то есть изначально fmt.Errorf("bla bla: %w", io.EOF) это всегда одна и таже ошибка вне зависимости от текста и работать с этим надо как с одной ошибкой

хуже если надо передать например ошибку и причину этой ошибки и поведение может отличаться взавимости и от самой ошибки и от причины. Ну это как рза те кейсы для которых уже не подходят ошибки константы. и лучше делать свои типы
источник

МП

Мимо Проходящий... in Go-go!
Daniel Podolsky
а зачем бы это было нужно?
например, считывание ответа из Reader было прервано внешним фактором и логически это ErrorProtocol, а фактически context.Canceled и нужно в разных местах по разному это обработать
источник

AK

Anton Kucherov in Go-go!
santiago s
вот это интересный момент и это как раз про frm.Errorf("%w %w") :)

ну то есть изначально fmt.Errorf("bla bla: %w", io.EOF) это всегда одна и таже ошибка вне зависимости от текста и работать с этим надо как с одной ошибкой

хуже если надо передать например ошибку и причину этой ошибки и поведение может отличаться взавимости и от самой ошибки и от причины. Ну это как рза те кейсы для которых уже не подходят ошибки константы. и лучше делать свои типы
Да, я про то же, как правило, причина важна для того чтобы потом понять что реально случилось, а "контекст" (Сообщение сверху), важно отдать пользователю, при этом не вскрывая детали которые пользователь все равно не поймет (а иногда и знать не должен). И как в этом случае быть с этой фунцкиией? Она кажется не решает эту проблему совсем. Кажется эту функцию есть смысл использовать только в том случае, когда важна ошибка внутри %w и ее позже хочется вытащить и че то с ней сделать.
источник

DP

Daniel Podolsky in Go-go!
Anton Kucherov
Да, я про то же, как правило, причина важна для того чтобы потом понять что реально случилось, а "контекст" (Сообщение сверху), важно отдать пользователю, при этом не вскрывая детали которые пользователь все равно не поймет (а иногда и знать не должен). И как в этом случае быть с этой фунцкиией? Она кажется не решает эту проблему совсем. Кажется эту функцию есть смысл использовать только в том случае, когда важна ошибка внутри %w и ее позже хочется вытащить и че то с ней сделать.
EOF оборачивать не положено
источник

а

а кто это in Go-go!
Мимо Проходящий
например, считывание ответа из Reader было прервано внешним фактором и логически это ErrorProtocol, а фактически context.Canceled и нужно в разных местах по разному это обработать
тогда это ErrorProtocol в которую вложен context.Canceled?
источник

МП

Мимо Проходящий... in Go-go!
а кто это
тогда это ErrorProtocol в которую вложен context.Canceled?
пофигу. Главное чтобы Is(err, ErrProtocol) == true и Is(err, context.Canceled) == true
источник

DP

Daniel Podolsky in Go-go!
я боюсь, коллеги, сейчас вы изобретете иерархию ошибок в java

и на этом идея стухнет, потому, что ниасиляторы повсюду
источник

ss

santiago s in Go-go!
Anton Kucherov
Да, я про то же, как правило, причина важна для того чтобы потом понять что реально случилось, а "контекст" (Сообщение сверху), важно отдать пользователю, при этом не вскрывая детали которые пользователь все равно не поймет (а иногда и знать не должен). И как в этом случае быть с этой фунцкиией? Она кажется не решает эту проблему совсем. Кажется эту функцию есть смысл использовать только в том случае, когда важна ошибка внутри %w и ее позже хочется вытащить и че то с ней сделать.
да, это функция просто для добавления некоего контекста изначальной ошибке-причине
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
EOF оборачивать не положено
а кем?
источник

МП

Мимо Проходящий... in Go-go!
Daniel Podolsky
я боюсь, коллеги, сейчас вы изобретете иерархию ошибок в java

и на этом идея стухнет, потому, что ниасиляторы повсюду
вот как раз в джава мне нравится как это сделано. Уже изобрёл, могу показать
источник