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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 2 כותבים 56 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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"
                טיפים

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

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

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

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

                  @צדיק-תמים כן, אני משתמש בזה מאז.

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

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

                  או שלא הבנתי משהו נכון?

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

                    @צדיק-תמים כן, אני משתמש בזה מאז.

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

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

                    או שלא הבנתי משהו נכון?

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

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

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

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

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

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

                    לא הבנתי כלום

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

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

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

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

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

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

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

                      לא הבנתי כלום

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

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

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

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

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

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

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

                      לא הבנתי כלום

                      הקומבינה של הרצת קוד לאחר החזרת תשובה למשתמש, נצרכת אם עושים call.id_list_message, כי אז הקוד גומר את פעלותו ומה שאחריו - סימון המודעה - לא מתבצע. אבל כאן אני לא משתמש בזה אלא בcall.read והקוד אמור להמשיך לרוץ ככה שאם לא יהיו בעיות הקוד אמור לרוץ, כל מה שאני עושה finally זה למקרה שהמחייג ינתק.

                      מקוה שהייתי מובן הפעם.

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

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

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

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

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

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

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

                        לא הבנתי כלום

                        הקומבינה של הרצת קוד לאחר החזרת תשובה למשתמש, נצרכת אם עושים call.id_list_message, כי אז הקוד גומר את פעלותו ומה שאחריו - סימון המודעה - לא מתבצע. אבל כאן אני לא משתמש בזה אלא בcall.read והקוד אמור להמשיך לרוץ ככה שאם לא יהיו בעיות הקוד אמור לרוץ, כל מה שאני עושה finally זה למקרה שהמחייג ינתק.

                        מקוה שהייתי מובן הפעם.

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

                        @eido אוקיי זה נכון, אבל אם אתה לא בודק שהמאזין באמת שמע או משהו כזה אין לך עניין לסמן רק אחרי
                        אתה יכול לסמן ואז לעשות read

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

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


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

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

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