Существуют ли какие-либо эмпирические правила относительно того, сколько команд catch вы ожидаете в каждой строке исходного кода в большой части программного обеспечения?
Например, в одном фрагменте программного обеспечения, написанного на С#, Visual Studio отображает около 350 строк, содержащих слово "catch", и cloc сообщает, что у нас около 160 тыс. SLOC, 30k прокомментированных строк и 15k пустых строк. 160k/350 - это примерно 467 строк кода для выписки.
Но возьмите это с солью, потому что мы используем стандартное форматирование С# с фигурными скобками на своих собственных линиях, поэтому кто знает, сколько строк - это только отдельные фигурные скобки из 160k, и что 160k подсчитывает некоторые файлы в дереве которые больше не компилируются в приложение и т.д. Я мог бы предположить, что "полезное" отношение будет ближе к 1 catch на 400 LOC.
По крайней мере, к моему удивлению, нам не хватало полукритического исключения, которое попадало в пустой блок catch, поэтому теперь я просматриваю базу кода и, по крайней мере, распечатываю исключение на консоли отладки, временную меру или более конкретную информацию об исключении. Это, конечно же, увеличит количество уловов, которые у нас есть во всем приложении, но приблизит ли мы нас ближе к "приемлемой" зоне? Я понятия не имею, что 1 поймать за 467 LOC - это хорошо, просто хорошо или даже ужасно.
<ч/" > Я хорошо знаю, почему бы не использовать пустые блоки catch. Остальные/предыдущие сопровождающие были ленивы. И так как следующий выпуск этого продукта имеет критический момент, у меня нет времени, чтобы зайти и правильно исправить все 300 (?) Неудовлетворительных заявлений об уловах и проверить правильность работы программного обеспечения (конечно, у нас практически нет автоматизированных тестирование, чтобы сделать это проще:/).
Я просто искал, было ли какое-то "ощущение кишки" относительно того, как часто нужно видеть попытки уловов. Там пара ответов говорит о том, что она чувствительна к контексту, и это то, о чем я подозревал, но не был уверен.