PDA

View Full Version : سوال: مدیریت خطا در سی پلاس پلاس



kamran_14
پنج شنبه 07 دی 1391, 18:44 عصر
سلام
خسته نباشید
آیا تو سی پلاس پلاس دستوری برای مدیریت خطا وجود داره؟
من دستور try رو می نویسم رنگش به عنوان کلمه کلید سفید می شه ولی خطا می ده که این سمبل تعریف نشده است
چطور می شه وقتی برنامه یه عددی رو با دستور cout می گیره از وارد کردن کاراکتر جلوگیری کرد؟چون وقتی این اتفاق می افته برنامه هنگ می کنه

hadi0x7c7
پنج شنبه 07 دی 1391, 19:34 عصر
این یه مدلشه:
#include <iostream>
#include <stdexcept>
using namespace std;

class Invalid {};

int main()
try{
int i;
cin >> i;
if(!cin) throw Invalid();
system("pause");

} catch(Invalid) {
cerr << "Not a number \n";
system("pause");
}

Arashdn
شنبه 09 دی 1391, 06:56 صبح
ممکنه یه کم توضیح بدید که این کلاس invalid چیه و چه کاربردی داره؟؟

fariba-2
شنبه 09 دی 1391, 10:15 صبح
سلام
من که معنی ارورهای این برنامه رو نمیفهمم. چیزی که از باکس پایین برنامه میفهمم اینه که انگار باید دور آکلاد " گذاشت که تا جایی که میدونم درست نیست!
اصلا از برنامه نیست که ایراد میگیره بلکه فقط از کاراکترهاست که ایراد میگیره.
این یه نمونه ساده که تصور نمیکنم ایرادی داشته باشه:


#include <iostream.h>





#include <conio.h>



int main();


{


int a,m;


cin>>a;


m=a*a*3;


cout<<"plz enter number:";


cout<< "masahat="<<m;


getch();


return 0;



}






ممنون میشم اگر شما ایرادی می بینید بگید.
با تشکر فریبا

hadi0x7c7
شنبه 09 دی 1391, 10:16 صبح
چیز خاصی نیست فقط ما میخواستیم یه کلاس uniqe داشته باشیم که هر وقت خطای مورد نظرمون اتفاق افتاد اونو از بقیه تمیز بده و با بقیه ی خطا ها مثل filenotfound یا rangeerror و ... قاطی نکنه