Одна приятная особенность, которая мне нравится в отладчике VS.Net, - это то, что вы можете сказать, что он ломается при возникновении любого исключения. Это не то, что вы включаете все время, но может помочь, когда вы пытаетесь выследить конкретную ошибку. Интересно, существует ли такая же функция для Java, так как это среда, очень похожая на .Net. Я думаю, что эта проблема проявляется больше в Java, чем в .Net, однако, потому что Java требует, чтобы вы обрабатывали исключения или, по крайней мере, помечали свой метод как выдающий то же исключение (AFAIK). Так что, если вам нужно справиться с этим, многие плохие разработчики просто проглотят это, потому что они не имеют ни малейшего представления, как с этим справиться или что с этим делать.
Ничто из этого не помогает вам мешать плохим разработчикам совершать плохие поступки. Я думаю, что лучшее, что вы можете сделать, это сделать обзоры кода. Поощряйте коллег просматривать список проверок, чтобы убедиться, что все сделано правильно. С хорошей системой контроля версий это можно сделать довольно легко. И человеческие глаза могут поймать вещи, которые не могут компьютеры. Компьютер сможет удалить пустой блок перехвата, но люди могут перехватить гораздо больше антипаттернов.