בקשר לקלט תקין תלמד על הבלוקים try catch. במקרה הספציפי הזה אולי כדאי יותר להשתמש int.TryParse אבל בכל זאת זה נושא חשוב. בקשר לשאר, אין לי כוח לקרוא.