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

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

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

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

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

  • התחברו או הירשמו כדי לחפש.