קהילות פורומים, הורדות, יעוץ ותמיכה


אשכולות דומים

  1. [מדריך] PHP משתנים
    על ידי TheBen בפורום האקינג ואבטחת מידע
    תגובות: 3
    הודעה אחרונה: 08-07-2009, 18:12
  2. תגובות: 4
    הודעה אחרונה: 13-06-2009, 15:43
  3. [מדריך]הפעלת PHP על המחשב
    על ידי B1ackSn0w בפורום האקינג ואבטחת מידע
    תגובות: 2
    הודעה אחרונה: 01-08-2008, 16:18
  4. [מדריך] פתיחת שרת ביתי -PHP
    על ידי LegenD^KilleR בפורום ארכיון מדריכים
    תגובות: 12
    הודעה אחרונה: 27-05-2007, 18:43
  5. [מדריך] בפרקים על php
    על ידי the champ is here בפורום תיכנות ובניית אתרים
    תגובות: 6
    הודעה אחרונה: 22-05-2007, 19:27
+ תגובה לנושא
מציג תוצאות 1 עד 4 מתוך 4

מדריך ל try,throw,catch ב PHP

  1. #1
    דמיון זאת הנשמה של העיצוב האוואטר של VisualMode
    שם פרטי
    גיל
    תאריך הצטרפות
    07/2011
    הודעות
    2,654
    לייקים
    242
    נקודות
    762
    מין: זכר

    ברירת מחדל מדריך ל try,throw,catch ב PHP

    מדריך ל try,throw,catch ב PHP

    מה זה בכלל ?
    עם פקודות אלה בד"כ אנחנו משיגים שגיאות בקוד (שאנו מזינים) כל אחד מהם עושה את הדבר הבא :
    - throw : "לזרוק" שגיאה שאתה מגדיר
    -try : לנסות תוכנית של קוד
    -catch : "לתפוס" את השגיאה

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

    למה זה שימושי ?

    כאשר מתמשים בזה הקוד והשגיאות הרבה יותר נקיות, מסודרת ואתה תוכל לדבג את התוכנית בקלות וביעילות.

    מגניב ! אז זה ממש שימושי, אבל אמ... איך משתמשים בזה ?

    בשביל "לזרוק" שגיאה בשפת PHP, אנו כותבים את הקוד הבא :
    קוד:
                throw new Exception(XXX);
    - ב XXX אנחנו כותבים את השגיאה.

    לדוגמא בסיסית נבדוק אם 1 שווה ל 2 (אני כמעט בטוח שלא) ואם לא זה "יזרוק" שגיאה :
    קוד:
    if (1 != 2)
                    throw new Exception('Gil');
    עכשיו אם נריץ את זה, זה לא יפעל ויחזיר לנו ERROR מוזר, אז בשביל שזה יעבוד אנחנו נצטרך להשתמש ב TRY ו CATCH,
    מה ששמים ב TRY זה הקוד שאנחנו רוצים לנסות, ואז אם הוא זורק שגיאה זה יעבור ל CATCH.
    נעשה זאת ככה :
    קוד:
        try {
            if (1 == 2) {
                echo '1 is equal to 2 ';
            } else {
                throw new Exception('Error : 1 doesent equal to 2'); 
            }
            
        } catch (){
            
        }
    אבל חכה ! זה גם לא פעול !
    זה לא פועל בגלל שעדיין ב CATCH לא קיבלנו את הזריקה ולכן זה יחזיר לנו ERROR,
    בשביל להוריד את התקלה הזאת, בתוך הסוגרים של ה CATCH אנו נכניס את המשפט הבא :
    קוד:
    Exception $ex
    שזה עושה, שכאשר יתקבל התקלה, זה יכניס את הפרטים שלה לתוך משתנה בשם $ex
    *שימו לב - אפשר לקרוא למשתנה איך שנרצה, אך מומלץ ex*

    אז למשל catch יכול להראות ככה :

    קוד:
    catch (Exception $ex){
            
        }
    טוב אז אני חושב שאני הבנתי, בהתחלה זרקנו בעיה, אחרי זה שמנו אותה בתוך TRY ו CATCH וקיבלנו אותה, אבל .. איך אני מדפיס את הבעיה ?!?

    בשביל להדפיס את הבעיה אנחנו נכתוב את שם המשתנה שלנו (ששמנו בו את התקלה - במקרה שלנו ex)-> ואז נשים :
    קוד:
    getMessage();
    מה שזה עושה זה לוקח את התוכן של הבעיה שהגדרנו ב THROW למשל אם זרקנו את הבעיה הזאתי :
    קוד:
                throw new Exception('Error : 1 doesent equal to 2');
    אז אם נשתמש במה שלמדנו עכשיו הערך של EX יהיה שווה ל Error : 1 doesent equal to 2 :
    קוד:
     $ex->getMessage();
    הנה כל הקוד של ה CATCH כאשר אני מדפיס את הבעיה :
    קוד:
    catch (Exception $ex){
            echo 'Error :'. $ex->getMessage();
        }
    וכל הקוד מההתחלה :
    קוד:
        try {
            if (1 == 2) {
                echo '1 is equal to 2 ';
            } else {
                throw new Exception('Error : 1 doesent equal to 2'); 
            }
            
        } catch (Exception $ex){
            echo 'Error :'. $ex->getMessage();
        }


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

    בתוכנית זאת אנו נגדיר שני משתנים, נבדוק אם אחד מהם 0, אם כן נזרוק שגיאה, ואם לא אנו נחלק אותם אחד בשני.

    אז בוא נתחיל ונכין את שני המשתנים :

    קוד:
    $num1 = 16;
        $num2 = 4;
    עכשיו אנחנו נכין את ה TRY ו CATCH שלנו כדי ש ב TRY אנחנו נבדוק אם אחד מהמשתנים הוא 0 ואם הוא כן זה יזרוק שגיאה ל CATCH :
    קוד:
        try {
    קוד:
        } catch (){
            
        }
    אחרי זה, אנחנו נכין תנאי שאם אחד מהמשתנים שווה ל 0 זה יזרוק בעיה, ואם לא זה יחלק אותם וידפיס את זה על המסך.


    קוד:
        try {
            if ($num1 == 0 || $num2 == 0) {
                throw new Exception('You cannot divide with 0'); 
            } else {
                echo 'the division of num1 with num2 is : '.$num1 / $num2;
            }
            
        }
    עכשיו כל מה שכתבנו עד עכשיו ביחד :

    קוד:
        $num1 = 16;
        $num2 = 4;
        
        try {
            if ($num1 == 0 || $num2 == 0) {
                throw new Exception('You cannot divide with 0'); 
            } else {
                echo 'the division of num1 with num2 is : '.$num1 / $num2;
            }
            
        } catch (){
        }
    השלב האחרון שלנו הוא להכין את ה CATCH, בסוגרים אנו נשים : Exception $ex כדי לקחת את הבעיה לתוך המשתנה EX ואחרי זה בתוך ה CATCH אנו נדפיס אותה בעזרת getMessage() :

    קוד:
    catch (Exception $ex){
            echo 'Error :'. $ex->getMessage();
        }
    כמובן עכשיו כל הקוד מההתחלה ביחד עם הערות :

    קוד:
        // define numbers 
        $num1 = 16; 
        $num2 = 4;
        
        try {
            if ($num1 == 0 || $num2 == 0) { // if statment checks if one of them is 0
                throw new Exception('You cannot divide with 0'); // throwing a new expetion
            } else { // else 
                echo 'the division of num1 with num2 is : '.$num1 / $num2; // priting the division
            }
            
        } catch (Exception $ex){ // starting to catch the error
            echo 'Error :'. $ex->getMessage(); // printing the error
        }
    וזהו ! אני מקווה שהבנתם הכל, אם יש משהו לא מובן אשמח אם תשאלו כאן ובשמחה אני יענה.

    עבדתי על זה הרבה זמן, אשמח לתגובות,
    בהצלחה !


    כל הזכויות שמורות לי - אין להעתיק ללא ראשות

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


    בברכה,
    מנהל פורום צד שרת.

  2. קישורים ממומנים

  3. #2
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    נחמד מאוד. תודה רבה.

  4. #3
    משתמש משקיע האוואטר של DoodleJump
    שם פרטי
    אדי
    תאריך הצטרפות
    09/2011
    הודעות
    4,700
    לייקים
    685
    נקודות
    623
    משפט מחץ
    גם החרא שלכם סגול?
    מין: זכר

    ברירת מחדל

    תודה רבה על המדריך!
    כמה השקעה!

  5. #4
    דמיון זאת הנשמה של העיצוב האוואטר של VisualMode
    שם פרטי
    גיל
    תאריך הצטרפות
    07/2011
    הודעות
    2,654
    לייקים
    242
    נקודות
    762
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי DoodleJump צפיה בהודעה
    תודה רבה על המדריך!
    כמה השקעה!
    תודה

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


    בברכה,
    מנהל פורום צד שרת.



הרשאות פרסום

  • אין באפשרותך לפרסם נושאים חדשים
  • אין באפשרותך לפרסם תגובות
  • אין באפשרותך לצרף קבצים
  • אין באפשרותך לערוך את הודעותיך


כל הזמנים הם לפי GMT +3. השעה כרגע היא 07:39.
מופעל על ידי vBulletin™ © גרסה 4.1, 2011 vBulletin Solutions, Inc. כל הזכויות שמורות.
נושאים: 2,449,540 | הודעות: 8,150,122 | משתמשים: 315,603 | המשתמש החדש ביותר: upizijoj | עיצוב גרפי: סטודיו עודד בביוף | קידוד: rellect