Size: a a a

NestJS — русскоязычное сообщество

2020 March 06

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
Andrey Melikhov
Мы считаем, что исключения должны редко использоваться как часть потока исполнения программы: исключения должны быть зарезервированы для непредвиденных событий. Предположите, что непойманное исключение прервёт программу и спросите себя: “Будет ли этот код работать, если я уберу все обработчики исключений?”.  Если ответ “нет”, то, вероятно, исключения используется не в исключительных ситуациях.
это откуда выдержка?
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
из The Pragmatic Programmer
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Фаулер тоже ссылается на эту цитату https://www.martinfowler.com/articles/replaceThrowWithNotification.html
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
меня больше печалит что исключение тяжелое для раскрутки стека и вообще в плане производительности тяжелая штука
потому заддосить го гораздо сложнее чем любое приложение которое швыряет исключения)
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Ihor Levchenko
меня больше печалит что исключение тяжелое для раскрутки стека и вообще в плане производительности тяжелая штука
потому заддосить го гораздо сложнее чем любое приложение которое швыряет исключения)
да, это тоже. потому что назначение разное
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
ну на самом деле моя идея что в гварде исключением я хочу прервать вообще все.. чтобы ни до пайпа, ни до интерцептора даже дело не дошло
но до интерцептора дело дойдет в любом случае ибо у него есть обратный вызов на респонс и там внутри на сколько я помню все обернуто трай кетчем чтобы формировать правильный ответ на исключение
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
может тебе просто мидлвару поставить? =)
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
с мидлварами тоже нюансы, мне не на все пути надо мидлвара
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
и она не очевидна
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
она будет подключена где-то в корне.. с exclud-ами
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
мне нравится явно.. указал декоратор - проверяй тут и все
источник

BK

Bogdan Korenkov in NestJS — русскоязычное сообщество
а все, сорри
источник

DT

Denchik Tymokhin in NestJS — русскоязычное сообщество
она не полная:(
источник

DT

Denchik Tymokhin in NestJS — русскоязычное сообщество
можно полную, пожалуйста:)
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
у меня проблема самая главная что я не могу подружить FileInterceptor и мой гард
Я хочу отменять аплоад файла если что-то не так с авторизацией
а у меня получается так, что сначала файл загрузится и потом у меня бросается эксцепшн в респонс что беда парни, беда, низя сюда грузить
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
я ищу пути как вообще отменить аплоад файла
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Denchik Tymokhin
можно полную, пожалуйста:)
Дальше скинул твит
источник

DT

Denchik Tymokhin in NestJS — русскоязычное сообщество
ааа
источник

K

Kehlani in NestJS — русскоязычное сообщество
Andrey Melikhov
эксепшены сделаны для исключительных ситуаций. Если мы ситуацию можем обработать и не успасть — она не является исключительной. Иначе эксепшен превращается в goto-программирование
Ну удачи тебе тогда прокидывать куда-нибудь в userService.findUserBySlug объект Response и самостоятельно устанавливать в него статус 404, если пользователь не найден, вместо того, чтобы просто кинуть UserNotFoundException и дать Несту сделать свою работу :) Правда в том, что современные фреймворки (Nest, Spring) позволяют использовать исключения не только для исключительных ситуациий, но и как элемент бизнес-логики, и лично я считаю, что этим можно и нужно пользоваться.
А порой кидание исключения и вовсе является единственным способом достигнуть желаемого результата. В том же Spring'е методы, которые вызываются в @PreAuthorize, тоже должны возвращать true или false, и в случае false Spring просто вернёт стандартный ответ с 403 статусом. И единственный способ изменить это поведение - кинуть своё кастомное исключение внутри метода, который вызывается в @PreAuthorize))
источник

IL

Ihor Levchenko in NestJS — русскоязычное сообщество
источник