Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Basic Error Handling

Introduction

Error handling is a crucial aspect of software development. It helps to manage errors gracefully and ensures that the application can handle unexpected situations without crashing. This tutorial will cover the basics of error handling with examples and explanations.

What is Error Handling?

Error handling involves the use of code to manage runtime errors and exceptions in a controlled manner. It allows developers to anticipate potential issues and provide solutions or fallback options.

Types of Errors

There are several types of errors that can occur in a program:

  • Syntax Errors: Errors in the syntax of the code, such as missing semicolons or incorrect brackets.
  • Runtime Errors: Errors that occur while the program is running, such as division by zero or null reference exceptions.
  • Logical Errors: Errors in the logic of the code, where the program runs but produces incorrect results.

Try-Catch Block

The try-catch block is used to handle exceptions in many programming languages. The code that may throw an exception is placed inside the try block, and the code to handle the exception is placed inside the catch block.

try {
    // Code that may throw an exception
    int result = 10 / 0;
} catch (Exception e) {
    // Code to handle the exception
    Console.WriteLine("An error occurred: " + e.Message);
}
                

Finally Block

The finally block is used to execute code regardless of whether an exception was thrown or not. It is often used for cleanup activities such as closing files or releasing resources.

try {
    // Code that may throw an exception
    int[] numbers = { 1, 2, 3 };
    Console.WriteLine(numbers[10]);
} catch (IndexOutOfRangeException e) {
    // Code to handle the exception
    Console.WriteLine("An error occurred: " + e.Message);
} finally {
    // Code that always runs
    Console.WriteLine("The 'try catch' block is finished.");
}
                

Throwing Exceptions

In some cases, you may want to throw an exception manually. This can be done using the throw keyword. It is useful for enforcing certain conditions or validating data.

public void ValidateAge(int age) {
    if (age < 0 || age > 120) {
        throw new ArgumentOutOfRangeException("age", "Age must be between 0 and 120.");
    }
}
                

Custom Exceptions

You can create your own custom exceptions by extending the built-in Exception class. This allows you to define more specific error conditions and provide additional information.

public class InvalidUserInputException : Exception {
    public InvalidUserInputException(string message) : base(message) { }
}

public void ProcessInput(string input) {
    if (string.IsNullOrEmpty(input)) {
        throw new InvalidUserInputException("Input cannot be null or empty.");
    }
}
                

Conclusion

Error handling is an essential part of developing robust and reliable software. By understanding and implementing basic error handling techniques, you can ensure that your applications can handle unexpected situations gracefully.