الله لا إله إلا أنت سبحانك إني كنت من ظالمين
قريباً جداً اسكربت مكتبة الالعاب

دروس متقدمه

بواسطة : egyplus الاستثنئات (Exceptions)
تقيم المقاله                             85%

بسم الله الرحمن الرحيم
لا أحب المقدمات فلندخل في صلب الموضوع لنتعرف علي الاستثنئات إحدى روائع ال php

أول حاجه يا جماعة الاستثنئات خاصية تسمح للمبرمج بإستخراج رسائل انت تحددها من خلال الدوال و هي مفيدة في إكتشاف أخطاء برامجنا و جلب مكان العطل

توضيح أكثر مثلاً قمنا بعمل دالة للقيام بعملية قسمه ثم تقريبها و بعد ذلك اردنا عند عدم إمكانية القسمه طباعة هذه الجمليه

(هناك خطأ في قيمة أحد المدخلات )

مثال علي هذه الداله

رمز PHP:
function example($num,$num2)
{
$num round($num/$num2
);

الان نريد عندما تعود إلينا الدالة round بـ false طباعة رسالة تبلغنا بوجود خطأ

سنقوم بالتحقق من ذلك عن طريق هذا الكود

رمز PHP:

if(!$num)
{

// بقية الكود

و الان يأتي دور الاسنثئنات

يتم كتابة استدعاء كائن الاستثنئاء بهذه الطريقه

رمز PHP:
throw new Exception("الرساله التي تود إستخراجها"); 
لنكتب الدالة الان مستخدمين خاصية الاستثناءات

رمز PHP:

function example($num,$num2)
{
$num round($num/$num2
);

if(!
$num
)
throw new 
Exception("هناك خطأ في قيمة أحد المدخلات"
);

حتي الان لم تكتمل الصوره حول كيفية استخدام هذه الخاصيه
بعد تعين الرسالة الذي نريدها نقوم الان بإستخدام الخاصيه try
و تكتب بهذه الطريقه
رمز PHP:
try
{
// الكود

و بداخله نستخدم الداله التي استخدمنا فيها خاصية الاستثناءات Exception

ليصبح الكود كاملاً

رمز PHP:
function example($num,$num2)
{
$num round($num/$num2
);

if(!
$num
)
throw new 
Exception("هناك خطأ في قيمة أحد المدخلات"
);
}


try{

      print 
example(4,100);
// وضعنا معاملين خطأين  



و الان تبقى استخراج رسالة الخطأ

و هذا يتم عن طريق الخاصية catch و يجب ان يتم كتابتها بعد try مباشرة
و فيها يتم استخراج الرسالة التي عينها + تفاصيل عنها كرقم السطر الذي به الكود و نص الكود و رقم السطر الخاص بالداله .. إلخ

و يتم كتابتها بهذه الطريقه

رمز PHP:
catch (Exception اسم المتغير المراد إنشاء الكائن بداخله
{

// هنا يتم إستخراج كل التفاصيل عن الرساله التي عينها


مثال

رمز PHP:

catch (Exception $var)
{

echo 
"<br/> $var->getMessage()<br/> "
;

كما قلنا في أول الموضوع الاستثنئات عباره عن كائن و هذا الكائن به دوال (خواص)
و كل دالة لها دور في استخراج تفاصيل الساله التي عينها

الدوال هي

رمز PHP:
getMessage // وظيفتها إستخراج الرساله المعينه
getLine   
// وظيفتها جلب رقم السطر الموجود فيه كود الاستناء
getFile   
// وظيفتها جلب مسار الملف 
getTraceAsStrin 
// وظيفتها جلب رقم السطر المكتوب فيه الكود + مسار الملف + و رقم الكود 
مثال كامل

رمز PHP:

function example($num,$num2)
{
$num round($num/$num2
);

if(!
$num
)
throw new 
Exception("هناك خطأ في قيمة أحد المدخلات"
);
}


try{

      print 
example(4,100
);


}
catch(
Exception $Exception
)
{
    echo 
'<br/>'.$Exception->getMessage
();
    echo 
'<br/>'.$Exception->getTraceAsString
();


مثال أخر

رمز PHP:
try{

$num round(100/400
);

if(!
$num
)
throw new 
Exception("هناك خطأ في قيمة أحد المدخلات"
);



}
catch(
Exception $Exception
)
{
    echo 
$Exception->getMessage
();


و في النهاية أتمنى ان أكون قد وفقت في ايصال المعلومه

حازم علي


عدد مرات مشاهدة المقاله : (623) تاريخ النشر : ( 07-07-2008 05:02 مساء)
التعليقات
إضافة تعليق
عنوان التعليق:
اسمك :
البريد :
الرد : 500

مقالات أخرى من دروس متقدمه
شرح برمجة نظام القوالب
  بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته القوالب هي تقييم للمبرمج فهي من تحدد سرعة البرنامج و إمكانية تصميمه و تطويره بسهوله لأن بكل بساطه المطور و المصمم ليسوا متعمقين في البرمجه بالشكل الكافي للتعديل و تخيل معي إن كانوا يستطيعوا ذلك فسيقوم شخص بتعديل جزء و يأتي صاحب الموقع لتغير التصميم فيأتي الاخر بتعديله أليس من المنطقي ان يحدث فقدان لأشياء داخل الملف لكثرة التعديل الغير دقيق . الفكرة التي سنقوم بتطبيقها لصناعة المحرك الاول ما الذي اريده من المحرك 1- جلب ملف القالب 2- التأكد من ان ملف ..    إقرأ الموضوع بالكامل
التحميل التلقائي للكائن في الاصدار php 5
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته في بعض الاوقات اثناء عملنا علي احد المشاريع الكبيره المكونه من عدة كائنات قد نتسائل أهل يجب علينا عمل جلب لكل ملفات الكائنات ؟ فكانت الاجابه نعم الي ان جائت ال php 5 بهذه الداله الرائعه autoload لتجعل عملية جلب الكائن اليه و ليست يدويه . و من مميزات هذه الداله ليست داله للأستخدام المباشر بل بإمكانك التعديل و التحكم فيها كما تشاء تكتب الداله هكذا [php] function __autoload($className) { //هو اسم الكائن الذي سيتم جلبه className المتغير #هنا نضع محتويات ..    إقرأ الموضوع بالكامل
كائن [phpcolor] لتلوين اكواد Php
بسم الله الرحمن الرحيم   كائن php color يقوم بتلوين اكواد البي اتش بي     طريقة الاستخدام [php] [/php]   مثال علي الكائن http://egyplus.org/article-3.htm   للتحميل من هتا   تحياتي للجميع حازم ..    إقرأ الموضوع بالكامل
sitemap   أرشيف  
جميع الحقوق محفوظة لإيجي بلس , 2007 - 2008