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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. למה GO נבהל מכל panic?

למה GO נבהל מכל panic?

מתוזמן נעוץ נעול הועבר תכנות
22 פוסטים 6 כותבים 254 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • nigunN מנותק
    nigunN מנותק
    nigun
    כתב ב נערך לאחרונה על ידי
    #1

    מי שקצת טבל את רגליו בGO מכיר את התופעה של קריאה לNIL יוצרת panic ומפסיק את התהליך
    השאלה שלי למה? מה רע בשגיאה ריגלה ולהמשיך הלאה?
    למה להפיל את כל השרת שלי בגלל איזה קריאה לא נכונה של מערך או יותר גרוע בגלל כתיבה וקריאה מקבילים למפה?
    אני משער שזה בגלל שזה שפה יותר נמוכה,אבל בכל זאת מה הקטע?

    מייל: nigun@duck.com

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      אני חושב שגם בשאלה הזו אין שום דבר מיוחד בgo.
      panic זה מן הסתם שם נרדף לexception. ומדובר פה לפי מה שאני מבין בגישה למשתנה מצביע לא מאותחל/ריק. מה שנקרא בjava "טעות המיליון דולר" - NullPointerException.
      exception זה פיצ'ר בשפות תכנות, שגורם לתוכנה ליפול אם אין לכידה וטיפול במקום להמשיך "כאילו כלום".
      אני מתאר לעצמי שכל מתכנת מרגיש לפחות לפעמים שהexception יותר מפריעים ממסייעים. בגללם התוכנה שלו קורסת והוא צריך להסתרבל עם טיפול בשגיאות וכו'. בכל זאת אם זה קיים זה אומר שהעדר גרוע יותר: תוכנית שממשיכה לרוץ באופן שלא צפית (כי אם צפית למה לא טיפלת בזה?) זה סכנה גדולה יותר מתוכנית קורסת (שנראית הסכנה הגדולה ביותר כאשר זה קורה...).

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      WWWW nigunN 2 תגובות תגובה אחרונה
      6
      • WWWW מנותק
        WWWW מנותק
        WWW
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid בכל זאת, למה בחלק מהשפות זה לא קורה?

        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

        clickoneC yossizY 2 תגובות תגובה אחרונה
        1
        • nigunN מנותק
          nigunN מנותק
          nigun
          השיב לdovid ב נערך לאחרונה על ידי
          #4

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

          מייל: nigun@duck.com

          תגובה 1 תגובה אחרונה
          0
          • clickoneC מנותק
            clickoneC מנותק
            clickone
            השיב לWWW ב נערך לאחרונה על ידי
            #5

            @WWW
            בכתיבה למערך נניח, אני מניח שבשפות אחרות יש מנגנון פנימי שדואג שזה לא יהיה ביחד
            ובשפות אחרות אכן צריך לעשות lock לבלוק

            אין טסט כמו פרודקשן.

            המייל שלי urivpn@gmail.com

            תגובה 1 תגובה אחרונה
            4
            • yossizY מנותק
              yossizY מנותק
              yossiz
              השיב לWWW ב נערך לאחרונה על ידי
              #6

              @WWW @nigun
              אין שום שפה בעולם שממשיך במקרה של חריגה בלי שתתפוס את החריגה ותטפל בו

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              WWWW תגובה 1 תגובה אחרונה
              0
              • WWWW מנותק
                WWWW מנותק
                WWW
                השיב לyossiz ב נערך לאחרונה על ידי
                #7

                @yossiz אמר בלמה GO נבהל מכל panic?:

                אין שום שפה בעולם שממשיך במקרה של חריגה בלי שתתפוס את החריגה ותטפל בו

                יש הרבה שפות שלא קורה חריגה.

                WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                yossizY תגובה 1 תגובה אחרונה
                0
                • yossizY מנותק
                  yossizY מנותק
                  yossiz
                  השיב לWWW ב נערך לאחרונה על ידי
                  #8

                  @WWW אמר בלמה GO נבהל מכל panic?:

                  יש הרבה שפות שלא קורה חריגה.

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

                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                  WWWW 2 תגובות תגובה אחרונה
                  1
                  • WWWW מנותק
                    WWWW מנותק
                    WWW
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #9

                    @yossiz לא יודע, בPHP השגיאות מחולקות ל 8 דרגות.
                    ומעולם לא נתקלתי בחריגה.

                    כמובן זה PHP, אבל בכל זאת, איך הוא מתנהג כשקורה שגיאות כאלה, רושם שגיאה ועובר הלאה.

                    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                    י תגובה 1 תגובה אחרונה
                    3
                    • WWWW מנותק
                      WWWW מנותק
                      WWW
                      השיב לyossiz ב נערך לאחרונה על ידי
                      #10

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

                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD מחובר
                        dovidD מחובר
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #11

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

                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        dovidD תגובה 1 תגובה אחרונה
                        6
                        • dovidD מחובר
                          dovidD מחובר
                          dovid ניהול
                          השיב לdovid ב נערך לאחרונה על ידי dovid
                          #12

                          @WWW תחשוב על הטלפון, נניח אתה שומר פרטי איש קשר, ויש באג והשמירה לא נעשתה. אם המפתח דאג, תוצג לך שגיאה ותדע שאיש הקשר לא נשמר (ותנסה מהר להשיג את המספר שוב). אבל אם זו שגיאה שלא נצפתה, אילו התוכנה לא תקרוס יופיע לך כיתוב חגיגי שאיש הקשר נשמר בהצלחה.
                          בלינק הבא
                          https://softwareengineering.stackexchange.com/a/403344
                          יש דוגמה (קיצונית אמנם) שתאזן לך את השאלה: תוכנה של מטוס שתקרוס זה יחייב את הטייס לטוס "ידנית" ועם מעט מידע. אבל זה הרבה יותר טוב מאם התוכנה תמשיך לעבוד ותיתן מידע שגוי.

                          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                          nigunN WWWW 2 תגובות תגובה אחרונה
                          5
                          • nigunN מנותק
                            nigunN מנותק
                            nigun
                            השיב לdovid ב נערך לאחרונה על ידי
                            #13

                            @dovid
                            להוריד את כל האפליקציה במקום את התהליך הצאצא נשמע יותר כמו להוריד את המטוס
                            אגב אני לא מתי בדיוק אבל לפעמים בשרת tcp אם אני עושה panic רק החיבור הספיציפי נופל ולא כל השרת

                            מייל: nigun@duck.com

                            dovidD תגובה 1 תגובה אחרונה
                            2
                            • dovidD מחובר
                              dovidD מחובר
                              dovid ניהול
                              השיב לnigun ב נערך לאחרונה על ידי dovid
                              #14

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

                              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                              nigunN תגובה 1 תגובה אחרונה
                              3
                              • י מנותק
                                י מנותק
                                יוסף בן שמעון
                                השיב לWWW ב נערך לאחרונה על ידי
                                #15

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

                                WWWW תגובה 1 תגובה אחרונה
                                0
                                • nigunN מנותק
                                  nigunN מנותק
                                  nigun
                                  השיב לdovid ב נערך לאחרונה על ידי
                                  #16

                                  @dovid
                                  כנראה שזה ההבדל
                                  אני הפנמתי כבר בהתחלה שאין כאן הנחות (בשונה מPHP)
                                  ואני דווקא נהנה מזה ,כי אז אתה לא נתקע עם זה בפרודקשן
                                  אבל היום כאמור נפלתי עם טיפול במערך(יותר נכון מפה) ע"י שתי תהליכים במקביל
                                  ומשום מה לא מזהירים על כך במדריכים למפות בGO
                                  ורק אחרי שהלקוח הזעיק אותי למחשב ואחרי ניפוי באגים + חיפוש בגוגל
                                  גיליתי את הסוד ורצתי לחפש את כל המקומות בו אני יוצר איברים למערך והוספתי נעילה
                                  וזה די מתסכל שאני לא יכול לישון בשקט
                                  שהשרת שלי ישאר למעלה גם אחרי שהרצתי בדיקות בסיסיות
                                  (איך אני אמור ליצור כזאת שגיאה בתנאי מעבדה?)
                                  @יוסף-בן-שמעון
                                  בPHP אם אתה לא כותב את הסקריפט נכון הוא לא יתחיל
                                  אבל לא נראה לי שיש הפתעות באמצע הריצה

                                  מייל: nigun@duck.com

                                  dovidD תגובה 1 תגובה אחרונה
                                  3
                                  • dovidD מחובר
                                    dovidD מחובר
                                    dovid ניהול
                                    השיב לnigun ב נערך לאחרונה על ידי dovid
                                    #17

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

                                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                    תגובה 1 תגובה אחרונה
                                    5
                                    • WWWW מנותק
                                      WWWW מנותק
                                      WWW
                                      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                                      #18

                                      @יוסף-בן-שמעון אמר בלמה GO נבהל מכל panic?:

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

                                      זו שגיאת מהדר נראה לי.

                                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                      תגובה 1 תגובה אחרונה
                                      1
                                      • WWWW מנותק
                                        WWWW מנותק
                                        WWW
                                        השיב לdovid ב נערך לאחרונה על ידי
                                        #19

                                        @dovid אמר בלמה GO נבהל מכל panic?:

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

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

                                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                        dovidD תגובה 1 תגובה אחרונה
                                        0
                                        • dovidD מחובר
                                          dovidD מחובר
                                          dovid ניהול
                                          השיב לWWW ב נערך לאחרונה על ידי
                                          #20

                                          @WWW אמר בלמה GO נבהל מכל panic?:

                                          מבחינתי בכזה מקרה אמור להיות הודעה :שגיאה כללית".

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

                                          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                          WWWW תגובה 1 תגובה אחרונה
                                          1

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

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

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