Как уже отмечали другие , никогда не делайте этого .Это «худшая практика».Исключением является то, что в вашей программе есть логическая ошибка .Перехватывая исключение и продолжая, вы скрываете логическую ошибку.
Используйте Single, только когда вы знаете , точно и точно, что в последовательности ровно один элемент.Если в списке может быть другое количество элементов, используйте First, FirstOrDefault, SingleOrDefault или напишите свой собственный оператор последовательности;это не сложно сделать.
Основные причины не использовать эту худшую практику:
1) Как я уже сказал, это скрывает ошибку;эти исключения не должны никогда быть пойманными, потому что они никогда не должны быть брошены в работающую программуИсключения существуют для того, чтобы помочь вам отладить вашу программу, а не управлять ее потоком.
2) Использование исключений в качестве потока управления, подобного этому, затрудняет отладку программы.Отладчики часто настроены на остановку любого исключения, независимо от того, обрабатывается оно или нет.Многие «ожидаемые» исключения усложняют ситуацию.Никогда не следует ожидать исключений, они должны быть исключительные ;именно поэтому они называются «исключениями».
3) Улов ловит все, включая вещи, которые, вероятно, указывают на фатальную ошибку, о которой следует сообщить пользователю.