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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. C# - מה מחזירים מפונקציה שאתה רוצה לקבל ממנו תוצאה + שגיאה במידה ויש

C# - מה מחזירים מפונקציה שאתה רוצה לקבל ממנו תוצאה + שגיאה במידה ויש

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 3 כותבים 128 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yossizY מנותק
    yossizY מנותק
    yossiz
    כתב ב נערך לאחרונה על ידי yossiz
    #1

    קורה המון שאני רוצה לקבל תוצאה בוליאנית מפונקציה של הצליח/לא הצליח. ובמידה ולא הצליח אני רוצה לקבל מידע על השגיאה. איך מקובל לעשות דבר כזה ב-#C בצורה הכי נקייה?

    במקרה הספציפי שנתקלתי בו עכשיו יש לי handler לבקשת HTTP. ה-handler יש לו את ה-HttpListenerResponse res ומשיב ב-OK 200 במקרה של הצלחה ובקוד שגיאה ותיאור השגיאה במקרה של שגיאה.

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

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

    האמת שנראה לי שאני יודע מה התשובה הנכונה. ליצור עוד קלאס (אוף, צריך להתרגל 😠 )... אבל האם יש משהו יותר נוח?

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

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

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

      @yossiz ב JS לדוגמה בד"כ מחזירים JSON עם 2 רכיבים, 1. הצלחה / כשלון. 2. הודעת שגיאה.
      השאלה אם זה מקובל ב C#, (כנראה שלא, וכמו שכתבת מה שמקביל לזה זה קלאס מיוחד).

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

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

        @www רק להבהיר, אני לא מדבר על מה אני מחזיר ברמת HTTP אלא מה הפונקציה מחזירה ברמת #C למי שקרא אותה

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

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

          @yossiz אם אתה רוצה להיות תקני, אז הדרך הנכונה היא לזרוק חריגה במקרה של שגיאה. זה לא בדיעבד וטריקי אלא זה דרך המלך והמחלקה Excption ויורשותיה ערוכים לתרחישים האלו בדיוק עם Message ואפילו לוקליזציה (וגם אתה יכול ליצור מחלקה יורשת שלו אם הוא לא מספק).
          אם אתה רוצה לתכנת באופן שונה ממה שתוכננה השפה (תרגיש בנח)
          אז יש לי מאה פתרונות בשבילך, למשל כמו בJS תעשה פונקציה שמחזירה כמה ערכים (אם אתה לא אוהב קלאס תוכל להשתמש בTuple או בValueTuple שזה עוד יותר שקוף ואלגנטי).

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

            @dovid אמר בC# - מה מחזירים מפונקציה שאתה רוצה לקבל ממנו תוצאה + שגיאה במידה ויש:

            זה לא בדיעבד וטריקי אלא זה דרך המלך והמחלקה Excption ויורשותיה ערוכים לתרחישים האלו בדיוק עם Message ואפילו לוקליזציה

            קיבלתי.

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

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

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

              אכן, רק אחד.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1

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

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

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