Hi,
int.TryParse wont throw an exception. It returns a boolean containing if the value was successfully parsed. It also takes an int as an output parameter so you still have access to the int value when successful. You can use it in the following way:
int price = 0;
if(int.TryParse(txtPrice.Text, out price)) {
}
In this example it doesn't throw an exception and only executes the relevant code when the input value is valid.
As for not selecting the first product in the list. Without seeing your code it's difficult to give advice. But my best guess would be that you need to add a place holder. Make the first item in the list "--Select--". Then in your code check for this value and ignore it if it's selected.