تسجيل الاستثناءات بشكل جيد
في هذا الدرس 4 موضوعات
محتوى هذا الدرس مكتوب وينتظر المراجعة. يعرض المخطط أدناه ما سيغطيه، وسيُنشر بعد اعتماده.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
log an exception once, with its stack trace.
الموضوعات المخطط لها
- Pass the exception as the last argument:
log.error("Payment failed for {}", id, e). - Do not use
e.getMessage()alone; you lose the stack trace. - Log it once, at the place that handles it.
- Do not log and rethrow: the same error then appears many times.
- Either handle it (log) or pass it up (throw), not both.
تفاصيل المخطط المبدئي
عرض عملي
try { pay(order); }
catch (PaymentException e) {
log.error("Payment failed for order {}", order.id(), e);
}اختبر فهمك
Why is log-and-rethrow bad?
أظهر الإجابة
The same error is logged several times and confuses readers.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.