تفاوت std::runtime_error با std::exception ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت std::runtime_error با std::exception ؟

0 امتیاز
این 2 با هم چه تفوتی دارند؟کجا باید exception استفاده کنیم و کجا runtime_error؟

 

تشکر فراوان
سوال شده آبان 16, 1393  بوسیله ی Xavi (امتیاز 627)   24 83 110

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

std::exception کلاس abstract و کلی هست که بقیه exception ها ازش ارث بردن .

 

runtime_err  هم از exception ارث برده و یکسری متد اضافه داره (مثلا سازنده مخصوص که string میگیره )

 

و این که چون std::exception  سازنده که string بگیره نداره برای throw کردن ارور با پیغام مشخص نمیشه ازش استفاده کرد (البته visual studio چون استاندارد رو رعایت نکرده سازنده با char* هم داره )

 

پس یا از کلاس های استاندارد  که ارث بردن مثل همین runtime_error اسفاده کنید .

اگر هم کلاس های استاندارد  مناسب نبودن  از exception ارث ببرید و اونو throw کنید .

 

پاسخ داده شده آبان 17, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد آبان 18, 1393 بوسیله ی Xavi
...