LINUX.ORG.RU

golang - не хочу возвращать err, хочу паниковать!

 , , обработка ошибок


0

3

Какая-то секта с этими err. Код распухает в несколько раз. Идея с defer выглядит довольно здравой - я в своё время делал такой defer для 1C и для Delphi. Но паника лучше, чем возврат err-ов. Таковой возврат ничего не упрощает. Когда выпадает исключение, сразу виден весь стек. Сгенерированный err не показывает места своего возникновения, т.е. с помощью брекпойнтов нужно много итераций, чтобы локализовать ошибку. А на fatalpanic есть чуть ли не встроенный брекпойнт, во всяком случае, у меня на fatalpanic отладка сама по себе останавливается.

Кроме того, разбор err после каждого вызова офигенно многословен, код распухает буквально в разы.

Я собираюсь попробовать в своих упражнениях максимально использовать панику. Труъ голангисты, разубедите!

★★★★★

Ответ на: комментарий от den73

Напиши пример списка из 4, «123» и какой-нибудь структуры на Си.

Какой-нибудь Glib List из Glib.Variant-ов, но... зачем? Обычно для задач, где это нужно, есть более подходящие решения.

anonymous
()
Ответ на: комментарий от den73

Зачем json?

Для json-а есть куча сишных библиотек. Да и вообще для json-а много библиотек.

Специализированное решение обычно быстрее и удобнее. Об этом и речь:

Обычно для задач, где это нужно, есть более подходящие решения.

anonymous
()
Ответ на: комментарий от den73

Список из произвольных типов — это tuple, и он не требует ослабления типизации. Если же тебе нужен динамический гетерогенный список, то ты явно порешь херню. Даже в динамических языках никто так не делает.

anonymous
()
Ответ на: комментарий от den73

Вот зачем json, затем и список из значений произвольных типов.

json нужен для сериализации всякой фигни в строку и обратно. Список значений произвольных типов для этого не нужен. Без него проще и быстрее, что и подтверждает бенчмарк по той ссылке.

anonymous
()
Ответ на: комментарий от anonymous

Ну ладно, тебе не нужен - не пользуйся. Но в голанге, для тех, кому нужен, он есть.

den73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.