معالجة استثناءات متعددة في كتلة catch واحدة
اصطد أنواع استثناءات متعددة في كتلة catch واحدة.
مقارنة الكود
✕ Pre-Java 7
try {
process();
} catch (IOException e) {
log(e);
} catch (SQLException e) {
log(e);
} catch (ParseException e) {
log(e);
}
✓ Java 7+
try {
process();
} catch (IOException
| SQLException
| ParseException e) {
log(e);
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
لا تكرار
نفس منطق المعالجة مكتوب مرة واحدة بدلاً من ثلاث.
قابل لإعادة الرمي
يمكن إعادة رمي الاستثناء المصطاد بنوعه الدقيق.
قابل للمسح
جميع الأنواع المعالَجة مرئية في مكان واحد.
الأسلوب القديم
كتل catch منفصلة
الأسلوب الحديث
Multi-catch
منذ JDK
7
الصعوبة
مبتدئ
دعم JDK
معالجة استثناءات متعددة في كتلة catch واحدة
متاح
متاح على نطاق واسع منذ JDK 7 (يوليو 2011)
كيف يعمل
يعالج Multi-catch أنواع استثناءات متعددة بنفس الكود. متغير الاستثناء نهائي فعلياً لذا يمكن إعادة رميه دون تغليف.
توثيق ذو صلة