конкретно в джаве это по идее должно быть относительно эффективно, с точки зрения байткода try-catch — это просто дополнительный атрибут метода, который состоит из 4 полей: начиная от какой инструкции, заканчивая какой инструкцией, где обработчик и какой класс исключения
Значит там макрос был. Как-то словил баг в айос приложухе, который был только в релиз версии. Оказалось, кто-то запихнул чтение в ассерт, который работал только в дебаг версии.
Значит там макрос был. Как-то словил баг в айос приложухе, который был только в релиз версии. Оказалось, кто-то запихнул чтение в ассерт, который работал только в дебаг версии.
первое правило ассертов: выражение, засунутое в ассерт, не должно иметь никаких побочных эффектов
например, если у тебя есть какая-то функция, которая ожидает, что её вызывают только в каком-то определённом состоянии, и что вызывающий проверит это состояние через if перед вызовом, ты в начале этой функции ставишь assert
например, если у тебя есть какая-то функция, которая ожидает, что её вызывают только в каком-то определённом состоянии, и что вызывающий проверит это состояние через if перед вызовом, ты в начале этой функции ставишь assert
и если вызывающий забыл проверить, всё упадёт к чёрту