כיצד ליישם את הטיפול בחריגים ב- C ++?

מאמר זה יעזור לכם להבין מהי טיפול בחריגים וכיצד ליישם טיפול בחריגים ב- C ++ עם הדגמה מעשית.

חריגים הם מצבים חריגים בזמן הריצה או זמן ההידור. הוא מושג מאוד חיוני ב- c ++. מאמר זה יציג בפניכם טיפול בחריגים ב- C ++ יחד עם הסוגים השונים.

המצביעים הבאים יוסקרו במאמר זה,



אז בואו נתחיל אז,

טיפול בחריגים ב- C ++

סוגי חריגים

ישנם שני סוגים של חריגים,



חריגת זמן ריצה

זהו חריג שנתפס בזמן הריצה.

חריג בזמן הידור



זהו יוצא מן הכלל שנתפס בזמן הידור.

ממשיכים במאמר זה לטיפול בחריגים ב- C ++,

היכן יש להכריז על משתני מופע ב- Java

מהי טיפול בחריגים?

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

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

לְנַסוֹת

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

לתפוס

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

לזרוק

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

תחביר:

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

בואו נסתכל על קוד לדוגמא לטיפול בחריגים ב- c ++

קוד לדוגמא

# כלול באמצעות מרחב שמות std נסה {// קוד לנסות לזרוק & ldquoexception & rdquo} לתפוס (חריג) {// קוד לתפוס} int ראשי () {int x = 1 ניסיון {cout<< 'Try Block: '<

תְפוּקָה:

פלט - טיפול בחריגים ב- C ++ - אדוריקה

הֶסבֵּר

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

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

לתפוס (...) {עלות<< 'Default Exceptionn'<

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

יכול להיות הצהרת תפיסה מרובה, בהתאם למספר החריגים האפשריים.

ממשיכים במאמר זה לטיפול בחריגים ב- C ++,

כישלון בלוק תפוס

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

מדריך שרת SQL למתחילים

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

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

# כלול באמצעות מרחב השמות std int main () {int x = 1 try {cout<< 'Try Block: '<

תפוקה:

הֶסבֵּר:

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

אם אף אחד מהצהרות התפס אינו תואם, תפיסת ברירת המחדל מתבצעת.

מה עושה .innerhtml

בלוקים רבים לתפוס

יכולות להיות מספר חסימות תפיסה של גוש ניסיון אחד.

הנה דוגמה,

# כלול שימוש ב- namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

תְפוּקָה:

הֶסבֵּר:

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

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

טיפול בחריגים בבסיס ובמחלקה הנגזרת:

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

להלן כמה יוצאים מן הכלל:

  • std :: חריג

  • logic_error

  • runtime_error

  • רע_אלוק

  • גרוע_שידור

  • חריג_חריג

עם זה אנו מגיעים לסוף הבלוג הזה בנושא 'טיפול בחריגים ב- C ++'. אני מקווה שמצאת זאת אינפורמטיבי ומועיל, הישאר מעודכן לקבלת הדרכות נוספות בנושאים דומים. תוכל גם לבדוק את תוכנית ההדרכה שלנותוכל לקבל ידע מעמיק ב- jQuery יחד עם היישומים השונים שלה לאימונים מקוונים חיים עם תמיכה 24/7 וגישה לכל החיים.

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