PDA

View Full Version : throw()



Sepidar
جمعه 09 شهریور 1386, 10:14 صبح
سلام
در بعضی متدهای stl کلمه کلیدی throw به طرز عجیبی به کار رفته. مثال:

class failure : public exception
{
public:
explicit failure(const string& __str) throw()
{
//other codes
}
//continue of def.
};
معنی این روش به کار بردن throw چیه؟

sh_roohani
جمعه 09 شهریور 1386, 19:08 عصر
سلام,

تا اونجایی که من می دونم شما می تونین یه throw list یا exception specification برای یه تابع تعریف کنین که می گه اون تابع هیچ exceptionی به جز اونایی که فهرست شدن تولید نمی کنه و اگه اینکار رو بکنه, runtime تابع unexpected رو صدا می زنه که معمولا برنامه رو تموم می کنه.

حالا به کار بردن throw list خالی بعد از اسم تابع یعنی که این تابع هیچ exceptionی تولید نمی کنه و اگه بکنه همون که گفتم.

البته VC این قابلیت رو هنوز پیاده سازی نکرده و چنین کدی یک میلیارد تا warning تولید می کنه. :لبخند:

Sepidar
شنبه 10 شهریور 1386, 17:49 عصر
تشکر

http://www.softwareacademy.de/cpplernen/?cpp=Exception%20Handling&ziel=Function%20Throw%20Lists