logo

طرق مختلفة لطباعة رسالة الاستثناء في جافا

في هذا القسم سوف نتعلم كيفية طباعة رسائل الاستثناء في جافا وذلك باستخدام أساليب مختلفة من جافا قابل للرمي فصل . توفر فئة Throwable الطرق الثلاث التالية لطباعة رسالة الاستثناء:

  • باستخدام طريقة printStackTrace
  • باستخدام طريقة getMessage ().
  • باستخدام طريقة toString ().
طرق مختلفة لطباعة رسالة الاستثناء في جافا

دعونا نناقش واحدا تلو الآخر بالتفصيل.

باستخدام طريقة printStackTrace()

ال طباعة تتبع المكدس() طريقة يتم تعريفه في قابل للرمي الفئة التي تنتمي إلى حزمة Java.lang. الطريقة تطبع الاسم والوصف (مثل / بصفر )، و ال تتبع المكدس (رقم السطر واسم الفئة حيث تم رفع الاستثناء) للاستثناء. تتبع المكدس حيث يحدث الاستثناء التالي. يتم استخدامه على نطاق واسع لطباعة رسالة الاستثناء.

هناك ثلاثة إصدارات من طريقة printStackTrace():

جافا الرياضيات المستديرة
بناء الجملة وصف
طباعة تتبع المكدس() تقوم الطريقة بطباعة هذا الرمي وأثره الخلفي إلى تدفق الخطأ القياسي.
printStackTrace باطلة عامة (PrintStream s) تقوم الطريقة بطباعة الرمي والتتبع الخلفي الخاص به إلى دفق الطباعة المحدد.
printStackTrace الفراغ العام (PrintWriter s) تقوم الطريقة بطباعة الرمي والتتبع الخلفي لكاتب الطباعة المحدد.

لفهم مفهوم طريقة printStackTrace()، أولاً، سنقوم بإنشاء ملف جافا البرنامج الذي أثار القسمة على صفر استثناء. في هذا البرنامج، لن نستخدم طريقة printStackTrace() لطباعة الاستثناء.

PrintExceptionMessage1.java

 public class PrintExceptionMessage1 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message System.out.println(e); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

عندما نقوم بتشغيل البرنامج أعلاه، نحصل على استثناء حسابي وتطبع الرسالة التالية على وحدة التحكم:

طرق مختلفة لطباعة رسالة الاستثناء في جافا

في الرسالة أعلاه، لا يمكننا الإشارة إلى السطر الذي يطرح استثناءً. لذلك، من الصعب العثور على مكان حدوث الاستثناءات. للتغلب على هذه المشكلة نستخدم طريقة printStackTrace(). دعونا نستخدم طريقة printStackTrace() في برنامج Java.

PrintExceptionMessage2.java

 public class ExceptionExample2 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message and detail of the exception e.printStackTrace(); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } } 

لنقم بتشغيل البرنامج أعلاه.

طرق مختلفة لطباعة رسالة الاستثناء في جافا

توضح رسالة الاستثناء المذكورة أعلاه بوضوح الطريقة التي أثارت الاستثناء، ونوع الاستثناء، وأي سطر يطرح استثناءً.

يوضح السطر الأول من الرسالة أن البرنامج يطرح ملف java.lang.ArithmeticException (اقسم على صفر). يوضح السطر الثاني أن الاستثناءات تحدث في السطر 9 والطريقة Division() تطرح استثناءً. ويبين السطر الثالث هذا الاستثناء في السطر واحد وعشرين . تطرح الطريقة main() أيضًا استثناءً لأن طريقة القسمة () يتم استدعاؤها داخل الطريقة main(). وبالتالي فإن استخدام طباعة تتبع المكدس() الطريقة، يمكننا أن نشير بسهولة إلى الموقع الدقيق من الاستثناء.

مفتاح إدخال الكمبيوتر المحمول

باستخدام طريقة getMessage ().

ال الحصول على رسالة () يتم تعريف الطريقة أيضًا في قابل للرمي الفئة التي تنتمي إلى حزمة Java.lang. تقوم الطريقة بطباعة رسالة الاستثناء فقط. ولا يطبع اسم الاستثناء ولا الوصف. يتم استخدامه على نطاق واسع لطباعة رسالة الاستثناء.

بناء الجملة:

 public String getMessage(); 

تقوم بإرجاع سلسلة الرسائل التفصيلية لهذا المثيل القابل للرمي. قد تكون فارغة.

لنستخدم طريقة getMessage() في برنامج Java.

PrintExceptionMesssage3.java

 public class PrintExceptionMessage3 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //prints only the message of the exception System.out.println(e.getMessage()); //use the following statement if you want to print name of the exception and which exception thrown //System.out.println(e); } } } 

لنقم بتشغيل البرنامج أعلاه.

طرق مختلفة لطباعة رسالة الاستثناء في جافا

نلاحظ أنه يطبع الاستثناء فقط. لذلك، لا يتم استخدامه على نطاق واسع لأنه لا يطبع الوصف التفصيلي للاستثناء.

باستخدام طريقة toString ().

ال إلى سلسلة() طريقة قابل للرمي الطبقة تتجاوز إلى سلسلة() طريقة فئة الكائن. يطبع الوصف القصير للاستثناء. ولا يُظهر المعلومات الأخرى (مثل اسم الاستثناء وتتبع المكدس). لا يتم استخدامه على نطاق واسع لطباعة رسالة الاستثناء.

لنستخدم طريقة toString() في برنامج Java.

PrintExceptionMessage4.java

نوع فقاعة جافا
 public class PrintExceptionMessage4 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //we can use either of the statement to print the exception message //both prints the same message System.out.println(e.toString()); //System.out.println(e); } } } 

لنقم بتشغيل البرنامج أعلاه.

طرق مختلفة لطباعة رسالة الاستثناء في جافا

في الرسالة أعلاه، نلاحظ أنها تطبع فقط اسم الاستثناء ونوعه. لا يشير إلى أي سطر حدث فيه الاستثناء.

لقد رأينا الطرق المختلفة لطباعة رسالة الاستثناء في Java. نقترح عليك استخدام طباعة تتبع المكدس() الطريقة لأنها تشير إلى الموقع الذي يحدث فيه الاستثناء.