Некошерно оборачивать каждую генерацию ошибки в try...catch.
Я думаю, что нужно как-то унаследовать стандартный Error, но чтобы номер строки и файл были приведены к единому виду независимо от браузера.
И тогда можно будет просто делать
triggerError(new UserError('текст ошибки'));