Модифицировать код -- это хорошо. Если в результате какого-то изменения в функционале стоит выбор: сделать больше модификаций в коде или просто добавить куда-то новый код, следует предпочесть вариант с бОльшим количеством модификаций, но способствующий большей когерентности (слаженности), результирующего кода.
Нужно помнить, что чтение кода -- более сложный и трудозатратный процесс, чем написание или модификация. Читать код может понадобиться более одного раза, а модификация (конкретная) происходит однократно. Короче, не нужно избегать изменения, нужно избегать нарастания сложности.
Если есть возможность принять решение, в каком именно месте должно возникнуть исключение, то лучше сделать так, чтобы оно возникло там, где проще всего будет понять, что его вызвало.
Например, лучше не выбрасывать исключение в конструкторе класса по проверке предусловий, а выбросить его в каком-то смысловом методе, уже при использовании класса.