امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
try - catch
نویسنده پیام
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #1
try - catch
سلام
توي پرانتز catch چي بايد بنويسم تا هر خطايي كه پيش اومد برنامه به قسمت catch بره ؟
معادل كد on error resume next وي بي تو C++ چيه؟
چطوري ميشه description خطا رو درآورد؟
ممنون

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۲-دى-۱۳۸۷, ۱۱:۲۷:۱۷
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: try - catch
اینم یه مثال ساده

کد:
#include <iostream>

using namespace std;
void Xhandler(int test)
{
  try{
    if(test==0) throw test;
    if(test==1) throw 'a';
    if(test==2) throw 123.23;
  }
  catch(...) {
    cout << "Caught One!\n";
  }
}
int main()
{
    Xhandler(1);

    return 0;
}

goodluck
۲۲-دى-۱۳۸۷, ۱۵:۳۲:۵۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #3
RE: try - catch
يكم بيشتر توضيح مي دي؟
throw چيكار مي كنه؟ نقش test يا 'a' كه بعد throw نوشتي چيه؟!
سه تا نقطه catch چيه؟

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۲-دى-۱۳۸۷, ۱۷:۴۹:۴۷
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: try - catch
دیگه از شما بعیده فقط کافیه برنامه رو اجرا کنی
اون 3 تا نقطه یعنی هر اروری و اون throw بیانگر خطا و 'a' هم ورودی هیت که به عنوان خطا در نظر گرفته شده
۲۳-دى-۱۳۸۷, ۱۰:۲۸:۰۲
وب سایت ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #5
RE: try - catch
نقل قول: دیگه از شما بعیده فقط کافیه برنامه رو اجرا کنی

ببخشید اگه تو C++ هنوز زیاد قوی نشدم سوال می کنم !! 036
من آخرش نفهمیدم کار دستور throw چیه ؟!
سوال دوم و سوم . . . ؟!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۳-دى-۱۳۸۷, ۲۳:۲۷:۴۹
ارسال‌ها
پاسخ
kasrakhan آفلاین
كاربر دو ستاره
**

ارسال‌ها: 221
موضوع‌ها: 4
تاریخ عضویت: خرداد ۱۳۸۴

تشکرها : 4
( 39 تشکر در 21 ارسال )
ارسال: #6
RE: try - catch
سلام
دستور throw برای مدیریت خطا و استثنا ها توی برنامه بکار میره
دستور throw اگر داخل یه تابع باشه و اجرا بشه اون تابع ترک میشه و برنامه به جایی که catch هست پرش می کند
یه مثال آپلود کردم.
مثلا توی این کد برنامه چون تقسیم بر 0 باعث ایجاد خطا در برنامه میشه ، پس باید کاری کنیم که در هنگام رسیدن به صفر برنامه متوقف شه و بفهمیم کجا error اتفاق افتادهWink
catch(...) هم برای تعریف error هایی که برای ما نا شناخته هستن و برای اونا class تعریف نکردیم بکار میره


فایل‌(های) پیوست شده
.txt   Exeption.txt (اندازه: 391 bytes / تعداد دفعات دریافت: 41)

ببخشید که فعالیتم کمه ! درس و .... اجازه نمی دن
(آخرین ویرایش در این ارسال: ۰۱-بهمن-۱۳۸۷, ۱۲:۰۷:۲۹، توسط kasrakhan.)
۰۱-بهمن-۱۳۸۷, ۱۱:۵۸:۱۵
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #7
RE: try - catch
سلام
این کد کار نکرد !!
اطلاعات من تا اینجا اینه :
در صورتی که دستورات توی بلوک try دچار خطا بشن برنامه به قسمت catch میره. هر catch یه ثابت داره که مشخص کننده یه نوع خطا هست و سه نقطه هم یعنی هر نوع خطایی. تا اینجا هیچ کاری با throw نداشتیم. پس چرا این کد کار نمی کنه ؟
کد:
#include <iostream>
using namespace std;

void main()
{
    try
    {
        int a,b;
    
        cin >> a >> b;
        cout << a/b;
    }
    catch(...)
    {
        cout << "error";
    }
}
به b صفر بدید.

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۰۵-بهمن-۱۳۸۷, ۱۶:۲۷:۱۹، توسط محمد حسینی.)
۰۵-بهمن-۱۳۸۷, ۱۶:۲۶:۰۰
ارسال‌ها
پاسخ
kasrakhan آفلاین
كاربر دو ستاره
**

ارسال‌ها: 221
موضوع‌ها: 4
تاریخ عضویت: خرداد ۱۳۸۴

تشکرها : 4
( 39 تشکر در 21 ارسال )
ارسال: #8
RE: try - catch
برای اینکه throw نکردیWink

کد:
#include <iostream>
using namespace std;
class Error ;
void main()
{
    try
    {
        int a,b;
    
        cin >> a >> b;
    if(b==0)throw Error() ;
        cout << a/b;
    }
    catch(Error er)
    {
        cout << "error";
    }
}

ببخشید که فعالیتم کمه ! درس و .... اجازه نمی دن
۱۲-بهمن-۱۳۸۷, ۰۱:۰۹:۴۳
ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS