История изменений
Исправление
Legioner,
(текущая версия)
:
Ну вот это и называется сознательно игнорировать ошибку. Такое можно в любом языке, это не про забывчивость.
А ещё есть такое понятие, как то, насколько бросается в глаза такой игнор. `_` это один символ, причём из вызова совсем не очевидно, что там была ошибка, а не просто ненужный выходной параметр. А чтобы проигнорировать исключение — тут нужен целый ритуал.
Потому что в Println обычно используют для диагностики, если stdout накрылся, то можно забить; подозреваю что 99% вызовов printf в C не проверяют код возврата, и не потому что забывают.
Странная логика. 99% консольных утилит используют stdout не для диагностики, а для вывода информации. То, что в C не проверяют код возврата, это хороший аргумент к тому, что это просто плохая система обработки ошибок. В большинстве кода на C и malloc-и не проверяют по той же причине: слишком муторно, проще грохнуться и сказать юзеру, чтобы не страдал фигнёй и поставил побольше памяти.
Ну вот вызвал я какую-то функцию, она мне вернула error. Я хз, че за error, распечатать его в лог со стектрейсом и грохнуться со всей силы.
Ну как раз panic помогает в таких случаях. Ну или debug.Stack(). Еще есть библиотеки для логгирования, которые умеют stacktrace из коробки.
panic не поможет, потому что в этом месте стек уже будет давно потерян. Стек нужен в том месте, где был создан error. Именно он содержит осмысленную информацию, необходимую для понимания ошибки.
Исходная версия
Legioner,
:
Ну вот это и называется сознательно игнорировать ошибку. Такое можно в любом языке, это не про забывчивость.
А ещё есть такое понятие, как то, насколько бросается в глаза такой игнор. `_` это один символ, причём из вызова совсем не очевидно, что там была ошибка, а не просто ненужный выходной параметр. А чтобы проигнорировать исключение — тут нужен целый ритуал.
Потому что в Println обычно используют для диагностики, если stdout накрылся, то можно забить; подозреваю что 99% вызовов printf в C не проверяют код возврата, и не потому что забывают.
Странная логика. 99% консольных утилит используют stdout не для диагностики, а для вывода информации. То, что в C не проверяют код возврата, это хороший аргумент к тому, что это просто плохая система обработки ошибок.
Ну вот вызвал я какую-то функцию, она мне вернула error. Я хз, че за error, распечатать его в лог со стектрейсом и грохнуться со всей силы.
Ну как раз panic помогает в таких случаях. Ну или debug.Stack(). Еще есть библиотеки для логгирования, которые умеют stacktrace из коробки.
panic не поможет, потому что в этом месте стек уже будет давно потерян. Стек нужен в том месте, где был создан error. Именно он содержит осмысленную информацию, необходимую для понимания ошибки.