עקבות מחסנית (או עקיבה) היא פלט המציג את ערימת השיטה של ​​היישום שלך. בדרך כלל תראה אחד במסוף שלך כאשר היישום שלך נתקל בשגיאה.

כפי שהשם מרמז, מבנה נתונים מחסנית מאחסן את השיטות במעקב מחסנית. השיטה שבה הפעלת התוכנית מתחילה נמצאת בחלק התחתון של הערימה בעוד זו שמייצרת את עקבות הערימה נמצאת בחלק העליון.

מעקב מחסנית יכול להיות שימושי מאוד כאשר אתה מנקה באגים בקוד שלך.

מדוע עקבות מחסנית חשובה?

עקבות מחסנית היא כלי חשוב לניפוי באגים. הוא נותן לך מידע מפורט כגון סוג השגיאה, השיטה שבה היא התרחשה, השורה בקוד שלך שבה היא התרחשה ונתיב הקובץ.

עבור מתכנת ותיק, המידע הזה הוא מכרה זהב להבנה מה בדיוק השתבש והיכן.

כמתכנת, אתה יכול גם לבקש מהתוכנית שלך ליצור מעקב מחסנית לפי דרישה. זה יכול להיות שימושי במיוחד עבור תחזוקת קוד ופתרון בעיות.

כיצד להוציא עקבות מחסנית

בהתאם לגרסת המהדר שלך, סביר להניח שתקבל עקבות קריא. עקבות קריא מספקת טקסט ידידותי למשתמש על השגיאה, שלא כמו העקיבה הרגילה. זה נכון במיוחד עבור מהדרים חדשים. לכן, הדרך הטובה ביותר ללמוד על עקבות מחסנית היא לייצר אחת בעצמך.

אתה יכול לייצר מעקב מחסנית מבלי שיהיו שגיאות כלשהן בקוד שלך. כדי לעשות זאת, פשוט השתמש ב-

instagram viewer
dumpStack שיטת ה java.lang. פְּתִיל מעמד. זה יציג את כל השיטות שנקראו, ממש מזו שקוראת ל-dumpStack. שיטת ההתקשרות תהיה זו שמעליה מבנה נתונים מחסנית.

להלן תוכנית לדוגמה שיוצרת באופן מפורש מעקב מחסנית:

מעמדStackTraceDemo{
פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת[] args){
יְוֹם();
}

סטָטִיבָּטֵליְוֹם(){
שעה (ות();
}

סטָטִיבָּטֵלשעה (ות(){
דקות();
}

סטָטִיבָּטֵלדקות(){
int א = 24 * 60;
System.out.println (א + " דקות ביום");
פְּתִיל.dumpStack();
}
}

תְפוּקָה:

1440 דקות ביום
java.lang.יוצא מן הכלל: לַעֲרוֹםזֵכֶר
ב-java.base/java.lang. Thread.dumpStack (Thread.java: 138)
בְּ-StackTraceDemo.דקות(StackTraceDemo.java:17)
בְּ-StackTraceDemo.שעה (ות(StackTraceDemo.java:11)
בְּ-StackTraceDemo.יְוֹם(StackTraceDemo.java:7)
בְּ-StackTraceDemo.רָאשִׁי(StackTraceDemo.java:3)

בפלט זה, אתה יכול לראות שהעקיבה מראה כיצד התוכנית קראה לכל אחת מהן שיטת Java ובאיזה מספר שורה בקוד המקור שלו. השיטה שיצרה את מעקב הערימה היא זו שמוצגת בראש הערימה. השיטה שקראה לזה נמצאת על הקו שמתחתיו, וכן הלאה.

מעבר ל-Stack Trace

כברירת מחדל, כאשר תוכנית Java שלך נתקלת בשגיאה היא תיעצר ותציג מעקב מחסנית. עם זאת, אתה יכול לבחור לטפל בשגיאות אלה בחן במקום להציג הודעות שעלולות לבלבל את משתמשי הקצה.

אתה יכול לשפר את הטיפול בשגיאות של התוכנית שלך באמצעות בלוק try...catch() כדי ללכוד חריגים. חשוב גם לשקול - ולהבין - את סוגי השגיאות השונים שהתוכניות שלך עשויות להיתקל בהן.