Без оригинальной статьи я не могу говорить за автора. Однако, в зависимости от того, как вы реализовали создание экземпляра и открытие соединения относительно вашего блока try / catch / finally, вам может потребоваться выполнить дополнительную проверку, прежде чем просто вызывать close. Например, убедитесь, что соединение не нулевое и не закрыто.
РЕДАКТИРОВАТЬ: в статье говорится, что не следует удалять объект подключения в вашем методе Finalize, не закрывать его в блоке finally. Фактически, в вышеприведенном параграфе говорится, что вы всегда должны закрывать соединение после его использования, поэтому оно возвращается в пул соединений.
"ВНИМАНИЕ! Рекомендуется всегда закрывать Соединение после завершения его использования, чтобы соединение было возвращено в пул. Это можно сделать с помощью методов Close или Dispose объекта Connection. Соединения, которые явно не закрыты, могут не быть добавлены или возвращены в пул. Например, соединение, вышедшее из области действия, но не закрытое явно, будет возвращено в пул соединений только в том случае, если достигнут максимальный размер пула и соединение все еще в силе.
Примечание Не вызывайте Close или Dispose для Connection, DataReader или любого другого управляемого объекта в методе Finalize вашего класса. В финализаторе освобождайте только неуправляемые ресурсы, которыми непосредственно владеет ваш класс. Если ваш класс не владеет какими-либо неуправляемыми ресурсами, не включайте метод Finalize в определение класса. Для получения дополнительной информации "
http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.71).aspx?ppud=4