PDA

View Full Version : سوال: throw new Exception چیه؟



css-man
جمعه 11 بهمن 1392, 17:19 عصر
دوستان این کارش چیه ؟

throw new Exception

MRmoon
جمعه 11 بهمن 1392, 17:20 عصر
یک اکسپشن (استثنا) صادر میکنه

css-man
جمعه 11 بهمن 1392, 17:26 عصر
خوی انی که میگی یعنی چی؟؟


اگه میشه یه کم توضیح بدید

MRmoon
جمعه 11 بهمن 1392, 18:36 عصر
برا مدیریت کردن خطاها است!

2undercover
جمعه 11 بهمن 1392, 19:03 عصر
http://www.php.net/manual/en/language.exceptions.php

ترجمه:

PHP5 مدل استثنا (Exception Model) یی شبیه به زبان های برنامه نویسی دیگر دارد. یک استثنا می تواند پرتاب شود (throw) و گرفته شود (catch). کدها می توانند توسط بلاک try احاطه شوند تا عملیات گرفتن (catch) را راحت تر بکنند. هر بلاک try می باست حداقل یک بلاک catch به همراه خودش داشته باشد. بلاک های catch چندتایی برای گرفتن کلاس های استثنای مختلف استفاده می شوند (به مثال 1 دقت کنید). استثناها می توانند درون بلاک catch پرتاب شوند (یا دوباره پرتاب شوند).

وقتی یک استثنا پرتاب شود کد های ادامه اجرا نخواهند شد و PHP تلاش خواهد کرد تا اولین بلاک catch درست را پیدا کند. اگر هیچ بلاک catch ی مناسب با کلاس استثنای پرتاب شده پیدا نشود، PHP یک خطای مرگبار با عنوان: Uncaught Exception... منتشر خواهد کرد، مگر اینکه یک پردازش گر استثنا با تابع set_exception_handler در برنامه معرفی شده باشد.

از PHP 5.5 به بعد بلاک finally نیز اضافه شده که صرف نظر از اینکه استثنایی درون بلاک try پرتاب شده یا بلاک catch اجرا شده، همواره اجرا خواهد.

استثناهای پرتاب شده همواره می بایست یا خود کلاس Exception باشند یا یک زیرکلاس (فرزند) کلاس Exception باشند، در غیر این صورت برنامه با یک خطای مرگبار متوقف خواهد شد.


مثال 1:


try {
throw new Exception('Exception...');
} catch(UnknownException $e) {
echo 'Unknown Exception...';
} catch(Exception $e) {
echo 'Known exception...';
// This block will catch the exception
}