Sobes.tech
Junior — Middle

Ποια είναι η διαφορά στη συμπεριφορά των μεθόδων TryParse και Parse σε περίπτωση αποτυχίας μετατροπής μιας συμβολοσειράς σε αριθμό;

sobes.tech AI

Απάντηση από AI

Η μέθοδος Parse ρίχνει μια εξαίρεση FormatException ή OverflowException αν η μετατροπή της συμβολοσειράς σε αριθμό αποτύχει, είτε επειδή η συμβολοσειρά δεν ταιριάζει με τη μορφή αριθμού είτε επειδή υπερβαίνει τα όρια του τύπου.

Η μέθοδος TryParse, αντί να ρίχνει εξαίρεση, επιστρέφει μια λογική τιμή false αν η μετατροπή αποτύχει και το αποτέλεσμα τοποθετείται σε μια παράμετρο εξόδου. Αυτό επιτρέπει την αποφυγή διαχείρισης εξαιρέσεων και τη συγγραφή πιο αποδοτικού και ασφαλούς κώδικα.

Παράδειγμα:

string input = "abc";
int number;

// Το `Parse` θα ρίξει εξαίρεση
// int result = int.Parse(input); // FormatException

// Το `TryParse` θα επιστρέψει false χωρίς να ρίξει εξαίρεση
bool success = int.TryParse(input, out number);
if (success)
{
    Console.WriteLine($"Μετατροπή σε αριθμό: {number}");
}
else
{
    Console.WriteLine("Η μετατροπή απέτυχε");
}