לגבי exceptions ב- ++C

voguemaster

New member
לגבי exceptions ב- ++C

אם קריאה כלשהי לפונקציה עלולה לייצר exception מסוים ואני לא מכניס את הקריאה לתוך בלוק try catch, הקומפיילר לא צועק עליי ?
לא מבין את זה...
 

HaRmosh

New member
תראה,

זאת לא שגיאת קומפילציה - מקסימום אזהרה, אם הקומפיילר נדיב. אתה יכול כמובן לבחור אם לתפוס exception שנזרק מתוך פונקציה או לא. מה שכן, כמובן שתקבל unhandled exception (ב-VS, לא יודע מה זה בשאר) אם לא תקיף את הקריאה ב-try/catch.
 

cyberia2ooo

New member
אני לא מבין בכלל

למה הוא אפילו אמור לספק אזהרה... הרי לפי הגדרה, כאשר פונקציה זורקת exception ואתה בוחר שלא לתפוס אותו (או ע"י כך שבלוק הtry catch שלך לא מכוון לתפוס את האקספשן, או שאתה בכלל לא דוחף אותו בשום בלוק שכזה) הexception יבעבע עד הmain שלך ששם אם הוא לא נתפס הוא יגרום ליציאה מהתוכנית. זו לא שגיאת קומפליציה. והרבה פעמים זה ככה מבחירה (בחירה לא נכונה... אך עדיין בחירה)
 

idansof

New member
אבל לא תמיד המתכנת זוכר

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

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

voguemaster

New member
בגלל זה שאלתי

בג'אווה EXCEPTIONS זה חלק אינטגרלי מהשפה
אולי אני אעבור לכתוב בג'אווה
 
למעלה