catch (...) چیه؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

catch (...) چیه؟

0 امتیاز
سلام.

چه زمانی برای کنترل استثناها بایستی از catch (...) استفاده کنیم؟
سوال شده آذر 13, 1393  بوسیله ی شاهین (امتیاز 114)   6 21 30

1 پاسخ

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

وقتی از سه نقطه به جای نوع متغییر استفاده کنید همه چیز catch میشه. یه جورایی مثل لیبل default توی switch میمونه.

مثال:

using namespace std;

int f(const int& i)
{
    if(i==20)
    {
        throw 10;
    }
    if(i==30)
    {
        throw string("20");
    }
    return 30;
}

void g()
{
    int j=60;
    try
    {
        j=f(30);
    }
    catch(const int& _i)
    {
        cout<<_i<<" catched!\n";
    }
    catch(...) //other (ie float,string,etc...)
    {
        cout<<"OTHER catched!\n";
    }
    cout<<"j is "<<j<<endl;
}

یه سرچ میزدی اینجا رو پیدا می کردی: http://stackoverflow.com/questions/315948/c-catching-all-exceptions

پاسخ داده شده آذر 18, 1393 بوسیله ی asd666 (امتیاز 100)   1 3 10
انتخاب شد آذر 20, 1393 بوسیله ی شاهین
ولی در حالت عادی با اون کچ نمیتونی دسکریپشن رو با وات بگیری
...