يتعامل C# مع الأخطاء باستخدام الاستثناءات التي يتم التقاطها عبر try/catch/finally. التعامل الصحيح مع الاستثناءات يعني التقاط أنواع استثناءات محددة، وتنظيف الموارد (غالباً باستخدام using)، وإنشاء استثناءات مخصصة ذات معنى، وعدم إخفاء الأخطاء بصمت.
