[ad_1]
Exceptions are designed to handle unexpected situations rather than controlling the application flow. Using exceptions during input validation can affect your application’s readability and performance.
Learning Objectives
- The inefficient use of exceptions
- A better approach using TryParse
Prerequisites for Developers
- Basic understanding of C# programming language.
\
Getting Started
The inefficient use of exceptions
Using exceptions for flow control, especially in a loop or frequently called code, may lead to severe performance bottlenecks. It also makes code hard to understand.
\
Exceptions are really expensive in terms of system resources because when an exception is triggered, .Net runtime captures the stack trace and the process is resource-intensive.
try
{
int.Parse(input); // Attempt to parse input
}
catch (FormatException)
{
// Handle the invalid input
}
A better approach using TryParse
Please find below the refactored version of the previous code snippet
if (int.TryParse(input, out int result))
{
// Use the parsed value
}
else
{
// Handle the invalid input
}
The aforementioned code attempts to parse the input supplied from the console and returns a boolean whether it’s a success or failure.
\
Complete Code
Create another class named AvoidExceptions and add the following code snippet
public static class AvoidExceptions
{
public static void BadWay(string input)
{
// Inefficient way: Using exceptions for flow control
try
{
int number = int.Parse(input);
Console.WriteLine($"You entered (Exception method): {number}");
}
catch (FormatException)
{
Console.WriteLine("Invalid input! Please enter a valid integer.");
}
}
public static void GoodWay(string input)
{
// Efficient way: Using TryParse for flow control
if (int.TryParse(input, out int result))
{
Console.WriteLine($"You entered (TryParse method): {result}");
}
else
{
Console.WriteLine("Invalid input! Please enter a valid integer.");
}
}
}
\
Execute from the main method as follows
#region Day 24: Avoid Exceptions in Flow Control
static string ExecuteDay24()
{
Console.WriteLine("Enter a number:");
string input = Console.ReadLine();
AvoidExceptions.BadWay(input);
AvoidExceptions.GoodWay(input);
return "Executed Day 24 successfully..!!";
}
#endregion
\
Console Output
Invalid input! Please enter a valid integer.
Invalid input! Please enter a valid integer.
\
:::info
Complete Code here: GitHub — ssukhpinder/30DayChallenge.Net
:::
C# Programming🚀
Thank you for being a part of the C# community! Before you leave:
Follow us: Youtube | X | LinkedIn | Dev.to Visit our other platforms: GitHub More content at C# Programming
[ad_2]
Source link