يعتمد الأسلوب الأفضل في التنقيح (debugging) على نوع الخطأ الذي تواجهه:
· تولـَّـد الأخطاء النحوية (syntax errors) بوساطة المجمّع (compiler) وتشير إلى وجود خطأ في بنية البرنامج. مثال: نسيان كتابة الفاصلة المنقوطة في نهاية تعليمة.
· الاستثناءات (أو أخطاء التشغيل) تنتج في حال حصول خطأ أثناء تشغيل البرنامج. مثال: تعاود لا نهائي يسبب StackOverflowException في النهاية.
· تسبب الأخطاء المنطقية تنفيذ شيء خاطئ. مثال: قد لا يتم تنفيذ إحدى العبارات الحسابية بالترتيب الذي تتوقعه، ما يعطي نتائج غير متوقعة.
تم ترتيب الأقسام التالية وفق أنواع الأخطاء، توجد بعض التقنيات المفيدة لأكثر من نوع واحد.