Мне кажется, вы что-то делаете не так. По канонам composer, папка vendor - это "приватная" папка, не доступная извне. Только папка app/web (или аналогичная) может быть доступна пользователям извне.
Как правило, исключения должны срабатывать в тех ситуациях, когда не возможно вернуть user friendly ответ пользователю. Все исключения должны писаться в логи, и не должны выводиться на экран (в production-режиме). Вы же как я понимаю, хотите вывести пользователю статусное сообщение. Так что нет - в вашем случае исключения не к месту.
Слышали о таком - Single Responsibility? Один метод класса должен отвечать за одно действие! Это один из принципов SOLID в ООП. Сам Yii этому следует и рекомендует следовать своим пользователям. А вот то, что вы пытаетесь сделать, называется - "говнокод".
К сожалению приведенного куска кода вообще не достаточно, чтобы понять, что у вас происходит. Yii2 - это фреймворк, и как на нем реализован конктретно ваш магазин никто кроме вас не знает. Хотя видимо и вы тоже.