דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. פעולת try/finally מפריע לcatch שמעליו או לא - nodejs

פעולת try/finally מפריע לcatch שמעליו או לא - nodejs

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 2 כותבים 27 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • E מנותק
    E מנותק
    eido
    כתב נערך לאחרונה על ידי
    #1

    בהמשך לנאמר כאן לגבי ספרית yemot router (nodejs)

    הid_list_message בלי פרמטר prepend to next זורק שגיאה

    אם אתה לא עושה עליה try catch אז הפונקציה נעצרת והשגיאה מטופלת על ידי הראוטר

    אם אתה עושה try catch ולא בודק את סוג השגיאה, זה בעיה

    בכללי אין סיבה בדוגמאות שהבאת לעשות try catch כי יש הנדלר גלובלי לשגיאות לא צפויות

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

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

    חיפשתי עד כמה שהצלחתי איך עובדות שגיאות בjava script ולא מצאתי מענה על זה, כולם מתעלמים (בצדק לדעתי) מנקודה זו.

    אשמח לעזרה בנושא.

    צדיק תמיםצ תגובה 1 תגובה אחרונה
    0
    • E eido

      בהמשך לנאמר כאן לגבי ספרית yemot router (nodejs)

      הid_list_message בלי פרמטר prepend to next זורק שגיאה

      אם אתה לא עושה עליה try catch אז הפונקציה נעצרת והשגיאה מטופלת על ידי הראוטר

      אם אתה עושה try catch ולא בודק את סוג השגיאה, זה בעיה

      בכללי אין סיבה בדוגמאות שהבאת לעשות try catch כי יש הנדלר גלובלי לשגיאות לא צפויות

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

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

      חיפשתי עד כמה שהצלחתי איך עובדות שגיאות בjava script ולא מצאתי מענה על זה, כולם מתעלמים (בצדק לדעתי) מנקודה זו.

      אשמח לעזרה בנושא.

      צדיק תמיםצ מנותק
      צדיק תמיםצ מנותק
      צדיק תמים
      כתב נערך לאחרונה על ידי צדיק תמים
      #2

      @eido כתב בפעולת try/finally מפריע לcatch שמעליו או לא - nodejs:

      עצם הבלוק try תופס שגיאות

      כן
      אם אתה עושה try finally אתה פשוט בולע את השגיאה
      ממליץ על הספר https://hebdevbook.com/product/jsheb/

      Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
      טיפים

      תגובה 1 תגובה אחרונה
      1
      • E מנותק
        E מנותק
        eido
        כתב נערך לאחרונה על ידי
        #3

        אז, אם אחרי מה שאני צריך לעשות אעשה (בfinally) גם throw זה כן יתפס בהנדלר?

        צדיק תמיםצ תגובה 1 תגובה אחרונה
        0
        • E eido

          אז, אם אחרי מה שאני צריך לעשות אעשה (בfinally) גם throw זה כן יתפס בהנדלר?

          צדיק תמיםצ מנותק
          צדיק תמיםצ מנותק
          צדיק תמים
          כתב נערך לאחרונה על ידי צדיק תמים
          #4

          @eido כן, כי אתה זורק את השגיאה שוב מחוץ לבלוק try
          רק מה ש try { פה } נתפס
          אבל אתה לא אמור להגיע למצב כזה בדרך כלל, כי אתה לא אמור לעטוף קטעי קוד גדולים
          בכל מקרה עדיף שתזרוק מחדש בcatch ולא בfinnaly כי אז יש לך את המשתנה של השגיאה לזרוק אותה מחדש

          Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
          טיפים

          E תגובה 1 תגובה אחרונה
          1
          • צדיק תמיםצ צדיק תמים

            @eido כן, כי אתה זורק את השגיאה שוב מחוץ לבלוק try
            רק מה ש try { פה } נתפס
            אבל אתה לא אמור להגיע למצב כזה בדרך כלל, כי אתה לא אמור לעטוף קטעי קוד גדולים
            בכל מקרה עדיף שתזרוק מחדש בcatch ולא בfinnaly כי אז יש לך את המשתנה של השגיאה לזרוק אותה מחדש

            E מנותק
            E מנותק
            eido
            כתב נערך לאחרונה על ידי
            #5

            @צדיק-תמים לא, הפעם הוא נקודתי ממש

            try {
                        //    toDo = await call.read(tempAd,
                        toDo = await call.read([...tempAd,{ type: 'file', data: `/ivr_records/שמיעה1` }],
                            'tap',
                            {sec_wait: 2, min_digits: 1, typing_playback_mode: "No", digits_allowed: [1, 2, 3, "*0"] });
                            }
                            finally{
                            console.log("מסמן כנקראה");
                           await updateBuyerAds(paramAndAdsContent[indexOfSubscrib].ads.new[i1].adId, call);
                        //    console.log(`סימן כנקראה את מודעה ${paramAndAdsContent[indexOfSubscrib].ads.new[i1].adId}`);
                        }
            

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

            צדיק תמיםצ תגובה 1 תגובה אחרונה
            0
            • E eido

              @צדיק-תמים לא, הפעם הוא נקודתי ממש

              try {
                          //    toDo = await call.read(tempAd,
                          toDo = await call.read([...tempAd,{ type: 'file', data: `/ivr_records/שמיעה1` }],
                              'tap',
                              {sec_wait: 2, min_digits: 1, typing_playback_mode: "No", digits_allowed: [1, 2, 3, "*0"] });
                              }
                              finally{
                              console.log("מסמן כנקראה");
                             await updateBuyerAds(paramAndAdsContent[indexOfSubscrib].ads.new[i1].adId, call);
                          //    console.log(`סימן כנקראה את מודעה ${paramAndAdsContent[indexOfSubscrib].ads.new[i1].adId}`);
                          }
              

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

              צדיק תמיםצ מנותק
              צדיק תמיםצ מנותק
              צדיק תמים
              כתב נערך לאחרונה על ידי
              #6

              @eido כתב בפעולת try/finally מפריע לcatch שמעליו או לא - nodejs:

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

              אז קודם תסמן כנקרא ואז תפעיל read

              Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
              טיפים

              E תגובה 1 תגובה אחרונה
              0
              • צדיק תמיםצ צדיק תמים

                @eido כתב בפעולת try/finally מפריע לcatch שמעליו או לא - nodejs:

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

                אז קודם תסמן כנקרא ואז תפעיל read

                E מנותק
                E מנותק
                eido
                כתב נערך לאחרונה על ידי
                #7

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

                צדיק תמיםצ תגובה 1 תגובה אחרונה
                0
                • E eido

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

                  צדיק תמיםצ מנותק
                  צדיק תמיםצ מנותק
                  צדיק תמים
                  כתב נערך לאחרונה על ידי צדיק תמים
                  #8

                  @eido אני לא רואה שאתה בודק כמה זמן עבר, הוא יכול לנתק רגע אחרי שהחזרת את התגובה לימות
                  בכל אופן יש על מקרה כזה תיעוד מפורט
                  https://github.com/ShlomoCode/yemot-router2#הרצת-קוד-לאחר-החזרת-תשובה-למחייג

                  כבר שלחתי לך אותו בעבר

                  Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                  טיפים

                  תגובה 1 תגובה אחרונה
                  0
                  תגובה
                  • תגובה כנושא
                  התחברו כדי לפרסם תגובה
                  • מהישן לחדש
                  • מהחדש לישן
                  • הכי הרבה הצבעות


                  בא תתחבר לדף היומי!
                  • התחברות

                  • אין לך חשבון עדיין? הרשמה

                  • התחברו או הירשמו כדי לחפש.
                  • פוסט ראשון
                    פוסט אחרון
                  0
                  • דף הבית
                  • קטגוריות
                  • פוסטים אחרונים
                  • משתמשים
                  • חיפוש
                  • חוקי הפורום