What is exception handling in C#?
๐ก Concept: Exception Handling
Exception handling in C# allows programs to manage runtime errors gracefully to avoid crashes and maintain flow control.
๐ Quick Intro
Using try, catch, and finally blocks, C# enables catching exceptions, handling errors, and cleaning up resources.
๐ง Analogy
Exception handling is like having a fire extinguisher ready โ it lets you control and put out unexpected fires before they spread.
๐ง Technical Explanation
- ๐ try block encloses code that might throw exceptions.
- ๐ catch blocks handle specific or general exceptions.
- โป๏ธ finally block executes cleanup code regardless of exceptions.
- ๐ฆ Exceptions propagate up the call stack if unhandled.
- โ๏ธ Custom exceptions provide more meaningful error context.
๐ฏ Use Cases
- โ Handling file I/O errors.
- โ Managing database connectivity issues.
- โ Validating user input.
- โ Network communication error handling.
๐ป Code Example
try {
int number = int.Parse(""abc""); // Throws FormatException
}
catch (FormatException ex) {
Console.WriteLine(""Input is not a valid number."");
}
finally {
Console.WriteLine(""End of exception handling."");
}

โ Interview Q&A
Q1: What is the purpose of try-catch?
A: To catch and handle runtime errors gracefully.
Q2: What does the finally block do?
A: Executes cleanup code regardless of exceptions.
Q3: Can exceptions be rethrown?
A: Yes, using throw statement.
Q4: What is an unhandled exception?
A: Exception not caught by any handler.
Q5: How to create custom exceptions?
A: Inherit from Exception class.
Q6: Why use specific catch blocks?
A: For precise error handling.
Q7: What happens if no catch matches?
A: Exception propagates up the call stack.
Q8: Is exception handling costly?
A: It can affect performance, use judiciously.
Q9: What is the base class for exceptions?
A: System.Exception.
Q10: Can you catch multiple exceptions?
A: Yes, with multiple catch blocks.
๐ MCQs
Q1. What is the purpose of try-catch?
- Handle runtime errors
- Ignore errors
- Crash program
- Log data
Q2. What does finally do?
- Catches errors
- Cleanup code
- Throws exceptions
- Terminates program
Q3. Can exceptions be rethrown?
- No
- Yes
- Sometimes
- Never
Q4. What is an unhandled exception?
- Caught and handled
- Not caught
- Logged
- Thrown again
Q5. How to create custom exceptions?
- Use interface
- Inherit Exception
- Use abstract class
- Throw exception
Q6. Why use specific catch blocks?
- Generic handling
- Precise handling
- No handling
- Ignore errors
Q7. What happens if no catch matches?
- Swallows exception
- Propagates up stack
- Terminates silently
- Ignores error
Q8. Is exception handling costly?
- No
- Use judiciously
- Always costly
- No impact
Q9. Base class for exceptions?
- System.Error
- System.Exception
- System.Object
- System.Handle
Q10. Can you catch multiple exceptions?
- No
- Yes
- Sometimes
- No idea
๐ก Bonus Insight
Proper exception handling enhances application reliability and user experience by preventing unexpected crashes and facilitating debugging.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!