שקול את הקטע הבא של ג'אווה קוד, המאוחסן בקובץ שנקרא JollyMessage.java:
// נכתב על המסך הודעה עליזה!
שיעור ג'ולימסג '
{
main static void main (מחרוזת [] args) {
// כתוב את ההודעה לחלון המסוף
System.out.println ("הו הו הו!");
}
}
במהלך ביצוע התוכנית, קוד זה יפיק הודעת שגיאה בזמן ריצה. במילים אחרות, אירעה טעות במקום כלשהו, אך השגיאה לא תזהה כאשר התוכנית קיימת מלוקט, רק כאשר זה לרוץ.
ניפוי באגים
בדוגמה שלמעלה, שימו לב שהכיתה נקראת “Jollymessage” ואילו שם הקובץ נקרא JollyMessage.java.
ג'אווה היא תלויי רישיות. המהדר לא יתלונן כי מבחינה טכנית אין פסול בקוד. היא תיצור קובץ כיתה שמתאים לשם הכיתה בדיוק (כלומר, Jollymessage.class). כשאתה מפעיל את התוכנית בשם JollyMessage, תקבל הודעת שגיאה מכיוון שאין קובץ בשם JollyMessage.class.
השגיאה שאתה מקבל כשאתה מפעיל תוכנית עם שם שגוי היא:
חריג ב- "main" ג'אווה.לנג. NoClassDefFoundError: JollyMessage (שם שגוי: JollyMessage)..
פתרונות נפוצים של שגיאת זמן
אם התוכנית שלך מורכבת בהצלחה אך נכשלה בעת ביצועה, בדוק את הקוד שלך על טעויות נפוצות:
- ציטוטים בודדים וכפולים לא תואמים
- ציטוטים חסרים למיתרים
- מפעילי השוואה שגויים (למשל, לא להשתמש בסימנים שווים כפול כדי לציין הקצאה)
- התייחסות לאובייקטים שאינם קיימים, או שאינם קיימים באמצעות אותיות רישיות המסופקות בקוד
- הפניה לאובייקט שאין לו תכונות
עבודה בסביבות פיתוח משולבות כמו Eclipse יכולה לעזור לכם להימנע משגיאות בסגנון "הקלדה".
כדי לבצע באגים בתוכנות Java הפקות, הפעל את הבאגים של דפדפן האינטרנט שלך - אתה אמור לראות הודעת שגיאה הקסדצימאלית שיכולה לסייע בבידוד הגורם הספציפי לבעיה.
במצבים מסוימים, הבעיה עשויה להיות לא בקוד שלך, אלא במחשב הווירטואלי של Java שלך. אם ה- JVM נחנק, הוא עלול לבעוט בשגיאת זמן ריצה למרות היעדר חסר בבסיס הקוד של התוכנית. הודעת ניפוי דפדפן תסייע בבידוד שגיאות קוד שנגרמו על ידי JVM.