طباعة استثناءات تتبع المكدس وتصحيحها في java
stackTrace (call trace باللغة الفرنسية) هو تمثيل المكدس أثناء التنفيذ في java < / ب > من البرنامج. الاستثناءات شائعة في برامجنا عندما يقوم المبرمجون بتجميع برامجهم. سمح لنا تتبع المكالمة بتتبع مصدر الخطأ.public static void main(String[] args) {
press(null);//line 9
}
ثابت ضغط الفراغ (int[] a) {
System.out.println("button "+a[0]);//line 12
}
< / pre>استثناء في الموضوع "main" java.lang.NullPointerException
في myClass.press (StringCompare.java: 12)
في myClass.main (StringCompare.java: 9)
< / pre>هذا المثال بسيط ، يمكنك معرفة مكان حدوث الخطأ بالنقر فوق الطريقة الأخيرة المسماة. الخطأ موجود في السطر 12 ويشير إلى الوصول إلى كائن فارغ (NullPointerException < / a>). الكائن الوحيد الموجود هو a[0] لذا فهو فارغ ونلاحظ أن طريقة الضغط تسمى بشكل رئيسي بمعلمة null.مثال على try/catch
الطريقة java.lang.Throwable.printStackTrace() يطبع التسلسل بأكمله من البداية إلى ظهور الاستثناء كخطوط بترتيب تنازلي للمكدس. يمثل الصف الأخير الجذر وهو أول طريقة مكدسة والأخير يمثل الجزء العلوي من المكدس الذي يوجد خطأ فيه. الخطوط حمراء لأن الشاشة تتم بها. System.err.استثناء في الموضوع java.lang.IllegalArgumentException : input == null!يتم طرح هذا الاستثناء عن طريق تشغيل البرنامج: < br / >
at javax.imageio.ImageIO.read(مصدر غير معروف)
at Fenetre.(Fenetre.java:127)
at Test.main(Test.java:9)< / a>< / div>
تفتح فئة Fenetre.java ويمكننا البحث عن السبب في السطر 127 مما يشير إلى أن دفق الإدخال فارغ. هذا يعني أنه لم يتم العثور على الصورة ولكن لماذا رفعت الاستثناء؟استثناء في الموضوع "الرئيسي" java.lang.IllegalArgumentException: input == null!نبحث عن نوع الاستثناء في المصيد ونلاحظ أنه IOExeption لأن طريقة getResource يجب أن تصل بشكل حتمي إلى المورد الموجود في الملف / icone.png وإلا في حالتنا الصورة ليست كذلك لا يمكن الوصول إليها ثم يتم طرح استثناء ويتوقف البرنامج.
المراجع
ما هو تتبع المكدس، وكيف يمكنني استخدامه لتصحيح أخطاء التطبيق الخاص بي؟
Class Throwable
كيفية طباعة تتبع مكدس لتصحيح استثناءات Java< / a>< / شعبة >< / شعبة >