Relevant documentation:
http://msdn.microsoft.com/library/default.asp url=/library/en-us/cpref/html/frlrfsystemdatasqlclientsqlcommandclassexecutereadertopic1.asp
SqlCommand.ExecuteReader
throws by Exception and SqlException. Under what conditions does it
through Exception instead of SqlException I don't think the
documentation is correct; I'm pretty sure I've seen SqlExceptions
raised in circumstances other than executing a command against a locked
row.

Exceptions generated by SqlCommand.ExecuteReader()
Amate
Sethu Srinivasan
IMHO SqlDataReader throws an SqlException if the SqlServer throws an error.