כיצד לפתור שגיאת קוד הצהרה בלתי ניתנת להשגה ב-Java?

Kyzd Lptwr Sgy T Qwd Hzhrh Blty Nytnt Lhsgh B Java



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

מאמר זה מדגים את ההליך לטיפול בשגיאת קוד ההצהרה הבלתי ניתנת להשגה ב-Java.

כיצד לפתור שגיאת קוד הצהרה בלתי ניתנת להשגה ב-Java?

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







סיבה 1: קוד הוכנס לאחר הצהרת 'הפסקה'.



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



בקר בקוד שלהלן:





מעמד חֲצִי {
פּוּמְבֵּי סטָטִי בָּטֵל רָאשִׁי ( חוּט [ ] args ) {
ל ( int אני = 0 ; אני <= 10 ; ++ אני ) {
אם ( אני == 5 ) {
לשבור ;
מערכת . הַחוּצָה . println ( אני ) ;
}
}
}
}

הקוד שלמעלה אמור להציג ערכים מתוך ' 0 ' ל ' 4 '. אבל, עם השימוש בהצהרה לאחר ה' לשבור ' הצהרת השגיאה הבלתי ניתנת להשגה מתעוררת:



הפלט מראה את התרחשות של שגיאת משפט בלתי ניתנת להשגה.

פתרון: נסה להכניס קוד מעל הצהרת 'הפסקה'.

הפתרון הוא להשתמש במשפט מחוץ לבלוק שבו ה-' לַחסוֹם נעשה שימוש בהצהרה. לדוגמה, הקוד שלמעלה פועל בצורה מדויקת אם ההצהרה ממוקמת מחוץ ל' אם ' בלוק הצהרות כפי שמוצג להלן:

תמונת המצב שלמעלה מה-IDE מראה שכעת שגיאת קוד ההצהרה הבלתי ניתנת להשגה נפתרה.

סיבה 2: הקוד הוכנס לאחר הצהרת 'המשך'.

ה ' לְהַמשִׁיך הצהרת ' מנוצלת כאשר המתכנת רוצה לדלג על איטרציה ספציפית כדי להתבצע על ידי הלולאה. המהדר שובר את מחזור הביצוע בכל פעם שהוא מוצא את ' לְהַמשִׁיך ' הצהרה בקוד. זו הסיבה שהקוד הופעל לאחר ' לְהַמשִׁיך ' הצהרה גורמת לשגיאה 'קוד הצהרה בלתי ניתן להשגה':

מעמד חֲצִי {
פּוּמְבֵּי סטָטִי בָּטֵל רָאשִׁי ( חוּט [ ] args ) {
ל ( int אני = 0 ; אני <= 10 ; ++ אני ) {
אם ( אני == 5 ) {
לְהַמשִׁיך ;
מערכת . הַחוּצָה . println ( אני ) ;
}
}
}
}

הפלט של הקוד לעיל נראה כך:

הפלט מראה שהתרחשה 'שגיאת קוד בלתי ניתנת להשגה'.

פתרון: הכנס קוד מחוץ לבלוק ההצהרות 'המשך'.

כדי לפתור את זה, פשוט השתמש בקוד מחוץ ל' לְהַמשִׁיך ' בלוק הצהרות:

לאחר שינוי המיקום, השגיאה נפתרת באופן אוטומטי.

סיבה 3: קוד הוכנס לאחר הצהרת 'החזרה'.

תרחיש זה זהה לעיל, המהדר מדלג על החלק של הקוד שממוקם אחרי ה-' לַחֲזוֹר 'הצהרה. זה בגלל ש' לַחֲזוֹר ' המשפט הוא הסוף שאחריו למהדר אין מה לבצע כפי שמוצג בתמונת המצב שלהלן:

פתרון: הקוד הוכנס לאחר הצהרת 'החזרה' בשיטת main()

כדי לפתור את הבעיה, הזן את הקוד לאחר ה-' לַחֲזוֹר ' הצהרה בשיטת main():

סיבה 4: קוד הוכנס לאחר הצהרת 'זרוק'.

שורת הקוד שהוכנסה אחרי ' לזרוק 'הצהרה ב' לְנַסוֹת ' עלים לחסום ללא הידור על ידי המהדר. לדוגמה, בקר בקוד הבא:

מעמד חֲצִי {
פּוּמְבֵּי סטָטִי בָּטֵל רָאשִׁי ( חוּט [ ] args ) //יצירת שיטת main()
{
לְנַסוֹת {
לזרוק חָדָשׁ יוצא מן הכלל ( 'חריג ראשון' ) ;
מערכת . הַחוּצָה . println ( 'חריג לאחר זריקת' ) ;
}
לתפוס ( יוצא מן הכלל ק ) {
מערכת . הַחוּצָה . println ( ק. getMessage ( ) ) ;
}
}
}

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

לאחר ביצוע הקוד לעיל:

תמונת המצב שלמעלה מראה את התרחשות של 'שגיאת קוד בלתי ניתנת להשגה' עקב השימוש בקוד לאחר ' לזרוק 'הצהרה.

פתרון: הכנס קוד לפני 'זרוק' מילת מפתח

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

הפלט לעיל מראה שהחריג הוסר והקוד פועל כעת כהלכה.

סיכום

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