тупа костыль дабы не пытаться сделать нормальные проверки, но у типа вроде не такой случай, ему вроде просто нужно вернуть информацию о том что не так
Потому что медленно
Если id извне - это одно, но если я его получил внутри где то - это другое
тогда у вас в репе должно быть GetByIdMaybe, GetByIdRequired
Да, по аналогии с first/firstordefault,
ну так исключение в этом случае бросается ормом
Ну так я ж не всегда беру сущность из орм напрямую. Я ж её там собирать по частям могу. Или обернуть хочу, что ef исключение не падало
ну когда дело дойдет до того что вам надо будет хайлоад писать, то такие кидания ексепшенов погубят перф везде
Нет, если они бросаются только в случае когда нужно прекратить выполнение, а не чтоб из выше catch делать и продолжать
ну а вот тот же банальный пример с юзером, там не надо ничего прекращать - просто вернуть тому кто сделал запрос правильный респонс и все
хай перф код с ексепшенами специально работает сейчас через throw helper-ы, потому что кодген что выдает throw new Exception высирает столько много, что метод прекращает быть инлайнбл френдли
Э? newobj + throw. Два IL кода - это много? В JIT выводе даже заинлайнилось. https://sharplab.io/#v2:C4LglgNgPgAgTABgLACh4EZUwQAhugOgCUBXAO2DAFsBTAgYQHsqAHSGgJwGVOA3MAMY0AzgG5UEtABYcAFQAWYYQElh9AIYQIYMgHMAFAEocAb1Q4LcxSuEKOjAO46Dh8SgC+kgNoBZGsHlGABNlVgh9PwDg0JYIAHkWSkYyYQIAQV1dDhFhMF4aZTJtMmdDAF0sGQUlVTtHZyNTc0swADN9JhTGCDoiGnUggBkdGkaAQgBeHAAidDgAZmnDZstLAPsHHDIaTYBRAA8hRLBkozdPFCA
int3 - это и значит ексепшн, вот пример - сравните кодген для ThisIsCalling и ThisIsCalling2
Действительно. Интересно, а что оно там вообще делает то перед этим и зачем там столько кода?
тут пишут что весь этот бойлерплейт это код для сетапа выброса ексепшна
Руками. Почему компилятор этого не делает, если это помогает? Не могу придумать причину, почему бы этого в релизе не делать
это уже не ко мне вопрос, вот недавно с пропоузалом с arg!!, там генерился какраз ThrowHelper рослином, но как знаем это роллбекнули
Да это понятно, скорее риторический. Наверняка там на что-то в jit завязались, а переписывать лень/долго.
Спасибо за ликбез!!!
Обсуждают сегодня