I was going to propose not to catch the exception, so before I suggested checking it myself, and if you set it to exclude all exceptions, even if you did not select an exception, all its exceptions will still be thrown. I have to agree with Shiv Kumar, either adjust my settings while debugging your application, or accept the limitations of what you do.
The reason bool.TryParse works is to check every character, just as Int32.TryParse ensures that every character in a string is 0-9 or any other valid numeric character.
Of course, you could write your own network class and not throw an exception if the connection failed.
TryParse will not throw an exception, you must catch any exception that is thrown if you use bool.Parse try {} catch {} otherwise, if you try to parse something that is not a boolean, it will throw an unhandled exception. TryParse was added later in .NET history, Parse is a more classic method that allows the programmer to process all unexpected data and check input before trying to parse the data.
I must add that TryParse will return false if it could not parse the value in both results of the method, is false, and the out variable, which I consider to be true, is false. This, at least, takes place with Int32
http://msdn.microsoft.com/en-us/library/system.boolean.tryparse.aspx
I assume the point of indicating how TryParse and Parse work is that they are completely different animals compared to TcpClient. I suggest that I should clarify that the basic validation process is similar, except that one throws an exception and the other does not, and, of course, one returns what was actually analyzed.