מדוע תוכניות קורסות

מדוע תוכניות קורסות
מדוע תוכניות קורסות

וִידֵאוֹ: מדוע תוכניות קורסות

וִידֵאוֹ: מדוע תוכניות קורסות
וִידֵאוֹ: החפרנים עונה 2 : מדוע אנחנו חולמים? 2024, אַפּרִיל
Anonim

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

למה
למה

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

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

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

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

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

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

מוּמלָץ: