Ah interessant, aber bei int.TryParse wird doch dann spätestens eine Exception geworfen wenn eine Rechenopertion ausgeführt wird oder? Verschleppt man damit nicht einfach das Problem?
TryParse gibt einen bool zurück der angibt ob die Konvertierung erfolgreich war oder nicht. Dies kann geprüft werden (if). Dies ist vorzuziehen denn Exceptions sollten nicht zur Ablaufsteuerung verwendet werden.
Dazu brauchst du nur mit dem Reflector schauen was passiert. Bei TryParse wird das unsafe zuerst geprüft ob der String eine Zahl repräsentiert. Es wird beim TryParse kein try-catch intern verwendet.
Convert.ToInt32() gibt es für 18 verschiedene Datentypen von Boolean bis String. Eventuell wirft die Funktion eine Runtime-Exception. Der typecast ist nur für wenige kompatible DatenTypen syntaktisch erlaubt, und kann zur Laufzeit zu einem Informationsverlust führen, wenn ein Überlauf entsteht.