بالإضافة إلى استثناءات وقت التشغيل والاستثناءات غير الخاصة بوقت التشغيل المذكورة في القسم السابق، هناك العديد من الاستثناءات الشائعة، مثل:
الاستثناء الحسابي: استثناء حسابي
NullPointerException: NullPointerException
استثناء تحويل الفئة: ClassCastException
استثناء منخفض للصفيف السلبي: NegativeArrayException
استثناء صفيف منخفض خارج الحدود: IndexOutOfBoundsException
الاستثناء الذي ينتهك مبادئ الأمان: SecurityException
استثناء إذن الوصول: IllegalAccessException
استثناء نهاية الملف: EOFException
لم يتم العثور على الملف الاستثناء: FileNotFoundException
استثناء السلسلة إلى الرقم: NumberFormatException
استثناء قاعدة بيانات التشغيل: SQLException
استثناء الإدخال والإخراج: IOException
لم يتم العثور على استثناء للأسلوب: NoSuchMethodException
…
يقدم هذا القسم بشكل رئيسي الحالات الشاذة الخمسة التالية:
غالبًا ما تتم مواجهة استثناءات المؤشر الفارغ عند البرمجة، ويعني حدوث هذا الاستثناء أن "البرنامج واجه مؤشرًا فارغًا". من الأخطاء الشائعة التي يرتكبها الأشخاص الذين بدأوا للتو في تعلم البرمجة في تشغيل المصفوفات هو الخلط بين تهيئة المصفوفة وتهيئة عناصر المصفوفة.
تهيئة المصفوفة هي تخصيص المساحة المطلوبة للمصفوفة، ولم يتم إنشاء مثيل للعناصر الموجودة في المصفوفة التي تمت تهيئتها ولا تزال فارغة، لذلك إذا كنت تريد الاتصال بها، فأنت بحاجة إلى تهيئة كل عنصر.
أخطاء تحويل نوع البيانات، مثل:
درجة حرارة السلسلة = ABC؛
إذا تم ضبطه على درجة حرارة int، فسيتم الإبلاغ عن خطأ لأن أنواعه مختلفة، ولكن إذا تم ضبطه على درجة حرارة الكائن، فسيكون الأمر جيدًا لأن الكائن هو فئته الأصلية.
غالبًا ما نواجه هذا الاستثناء عند تشغيل المصفوفات، ويعني الاستثناء "مصفوفة منخفضة خارج الحدود". نطاق المصفوفة؟ بشكل عام، من غير المحتمل حدوث مثل هذه الأخطاء عند الاتصال مباشرة بالثوابت، ولكن من السهل ارتكاب مثل هذه الأخطاء عند استدعاء المتغيرات. وفي حالة أخرى، يتم تحديد طول المصفوفة المحددة في البرنامج بطرق معينة لم يتم الإعلان عنه مسبقًا، ومن الأفضل في هذا الوقت التحقق من طول المصفوفة لتجنب هذا الاستثناء.
تفسير هذا الاستثناء هو "لا توجد حقوق وصول." يحدث هذا الاستثناء عندما يريد التطبيق استدعاء فئة، ولكن الطريقة الحالية لا تملك حقوق الوصول إلى الفئة. انتبه إلى هذا الاستثناء عند استخدام الحزم في البرنامج.
سيحدث هذا الاستثناء بشكل عام عند قراءة الملفات وكتابتها. على سبيل المثال، إذا كنت تريد قراءة ملف من القرص إلى برنامج كتبته، إذا كان الملف غير موجود على القرص الثابت، فسيقوم جهاز Java الظاهري بالإبلاغ عن هذا الاستثناء.