Lukas Durovsky

Staff Software Engineer @ Thermo Fisher Scientific

Beyond the Basics: Advanced Exception Handling Techniques in C#/.NET

Exception handling is a fundamental concept in C#/.NET for managing unexpected errors. While basic try-catch blocks are essential, robust applications require a more sophisticated approach. This talk dives deeper into advanced exception handling techniques that empower you to write cleaner, more maintainable, and informative code.

We'll explore concepts like:

  • Exception Hierarchy and Specificity: Mastering the hierarchy of exception classes and using specific exceptions for better error identification. This will help you differentiate between programmer errors ("boneheaded" exceptions), logical errors ("vexing" exceptions), and external factors ("exogenous" exceptions).
  • Rethrowing and Catching Exceptions: Understanding the nuances of rethrowing exceptions and selective catching for improved control flow.
  • Custom Exceptions: Crafting custom exceptions to convey clear and context-specific error messages.
  • Logging and Exception Handling: Integrating logging mechanisms with exception handling for detailed error tracking and debugging.
  • Async/Await and Exceptions: Handling exceptions effectively in asynchronous programming with async/await patterns.

Lukas Durovsky

I'm a Staff Software Engineer at Thermo Fisher Scientific with 10 years of experience crafting clean, efficient, and secure software solutions. My passion lies in building robust and scalable systems, particularly within the realm of distributed systems architecture. I'm a strong advocate for clear and maintainable code, believing that well-written code is essential for long-term project success. My focus on efficiency extends beyond code optimization, encompassing the entire software development lifecycle, from design and implementation to deployment and maintenance.

Beyond technical expertise, I value the importance of secure APIs in today's interconnected world. I actively seek to stay abreast of emerging security threats and best practices to ensure the integrity and protection of sensitive data. I'm constantly learning and experimenting with new technologies and methodologies, always eager to share my knowledge and collaborate with others within the software development community.