Сообщение Re[7]: Почему в расте отсутствует выброс исключений? от 01.12.2022 23:01
Изменено 01.12.2022 23:03 vsb
Re[7]: Почему в расте отсутствует выброс исключений?
Здравствуйте, alex_public, Вы писали:
_>Ну, то что ты описал — это как раз случай не исключительной ситуации, а обычной обработки ошибок и соответственно удобнее это обрабатывать не исключениями, а через Result.
Нет, удобней это обрабатывать именно исключениями. Т.к. при этом мне не нужно писать никакого кода.
_>А насчёт твоего универсального обработчика ошибок... Так он всегда возвращает именно 500? А если где-то надо 404 вернуть или 401, то как тогда? А если случается OOM, то он тоже пытается вернуть запрос (на создание которого опять же нужна память, которой уже нет) с 500?
OOM в жаве это отдельная иерархия, но в целом — да, если отвечать на вопрос — пытается. И у него скорей всего получится, т.к. на нижнем уровне там всё используется в пулах преаллоцированных. Хотя, конечно, в условиях OOM всё будет плохо. У меня такой ситуации практически не бывает, но если про это задумываться, я при OOM предпочёл бы просто завершить процесс.
Ну вот в 1 случае из 10 000 мне надо вернуть что-то кроме 500. И я для этого напишу эти 4 строчки с обработчиком. А в остальных 9999 случаях не напишу. И даже думать про это не буду, ну кроме как на уровне архитектуры, типа транзакции для БД и тд.
_>А что именно неудобно в работе с Result?
Ну в го неудобно то, что там под каждым вызовом функции еще 3 строки на обработку err. В расте сахарок сделали, но всё равно везде Result-ы мусорят же. Зачем мне это видеть.
_>Ну, то что ты описал — это как раз случай не исключительной ситуации, а обычной обработки ошибок и соответственно удобнее это обрабатывать не исключениями, а через Result.
Нет, удобней это обрабатывать именно исключениями. Т.к. при этом мне не нужно писать никакого кода.
_>А насчёт твоего универсального обработчика ошибок... Так он всегда возвращает именно 500? А если где-то надо 404 вернуть или 401, то как тогда? А если случается OOM, то он тоже пытается вернуть запрос (на создание которого опять же нужна память, которой уже нет) с 500?
OOM в жаве это отдельная иерархия, но в целом — да, если отвечать на вопрос — пытается. И у него скорей всего получится, т.к. на нижнем уровне там всё используется в пулах преаллоцированных. Хотя, конечно, в условиях OOM всё будет плохо. У меня такой ситуации практически не бывает, но если про это задумываться, я при OOM предпочёл бы просто завершить процесс.
Ну вот в 1 случае из 10 000 мне надо вернуть что-то кроме 500. И я для этого напишу эти 4 строчки с обработчиком. А в остальных 9999 случаях не напишу. И даже думать про это не буду, ну кроме как на уровне архитектуры, типа транзакции для БД и тд.
_>А что именно неудобно в работе с Result?
Ну в го неудобно то, что там под каждым вызовом функции еще 3 строки на обработку err. В расте сахарок сделали, но всё равно везде Result-ы мусорят же. Зачем мне это видеть.
Re[7]: Почему в расте отсутствует выброс исключений?
Здравствуйте, alex_public, Вы писали:
_>Ну, то что ты описал — это как раз случай не исключительной ситуации, а обычной обработки ошибок и соответственно удобнее это обрабатывать не исключениями, а через Result.
Нет, удобней это обрабатывать именно исключениями. Т.к. при этом мне не нужно писать никакого кода.
_>А насчёт твоего универсального обработчика ошибок... Так он всегда возвращает именно 500? А если где-то надо 404 вернуть или 401, то как тогда? А если случается OOM, то он тоже пытается вернуть запрос (на создание которого опять же нужна память, которой уже нет) с 500?
Ну вот в 1 случае из 10 000 мне надо вернуть что-то кроме 500. И я для этого напишу эти 4 строчки с обработчиком. А в остальных 9999 случаях не напишу. И даже думать про это не буду, ну кроме как на уровне архитектуры, типа транзакции для БД и тд.
OOM в жаве это отдельная иерархия, но в целом — да, если отвечать на вопрос — пытается. И у него скорей всего получится, т.к. на нижнем уровне там всё используется в пулах преаллоцированных. Хотя, конечно, в условиях OOM всё будет плохо. У меня такой ситуации практически не бывает, но если про это задумываться, я при OOM предпочёл бы просто завершить процесс.
_>А что именно неудобно в работе с Result?
Ну в го неудобно то, что там под каждым вызовом функции еще 3 строки на обработку err. В расте сахарок сделали, но всё равно везде Result-ы мусорят же. Зачем мне это видеть.
_>Ну, то что ты описал — это как раз случай не исключительной ситуации, а обычной обработки ошибок и соответственно удобнее это обрабатывать не исключениями, а через Result.
Нет, удобней это обрабатывать именно исключениями. Т.к. при этом мне не нужно писать никакого кода.
_>А насчёт твоего универсального обработчика ошибок... Так он всегда возвращает именно 500? А если где-то надо 404 вернуть или 401, то как тогда? А если случается OOM, то он тоже пытается вернуть запрос (на создание которого опять же нужна память, которой уже нет) с 500?
Ну вот в 1 случае из 10 000 мне надо вернуть что-то кроме 500. И я для этого напишу эти 4 строчки с обработчиком. А в остальных 9999 случаях не напишу. И даже думать про это не буду, ну кроме как на уровне архитектуры, типа транзакции для БД и тд.
OOM в жаве это отдельная иерархия, но в целом — да, если отвечать на вопрос — пытается. И у него скорей всего получится, т.к. на нижнем уровне там всё используется в пулах преаллоцированных. Хотя, конечно, в условиях OOM всё будет плохо. У меня такой ситуации практически не бывает, но если про это задумываться, я при OOM предпочёл бы просто завершить процесс.
_>А что именно неудобно в работе с Result?
Ну в го неудобно то, что там под каждым вызовом функции еще 3 строки на обработку err. В расте сахарок сделали, но всё равно везде Result-ы мусорят же. Зачем мне это видеть.