c++异常处理


抛出异常后,一直循环异常处理:

   
  while(flag)
  
{
flag=0;
cout<<"必修课程“"<<(*student)[i].getName()<<"”的成绩(0-100):";
cin>>mark;
while(cin.fail())
{

//cout<<cin.fail()<<endl;
cin>>mark;
}
try{dynamic_cast<ObligatoryCourse &>((*student)[i]).setMark(mark);}
catch(ExceptionCourse a)
{
cout<<"\n"<<a.what();
a.print();
cout<<"\n";
flag=1;
}
}
   
  bool ObligatoryCourse::setMark(int m)
  
{
if ((m<=100)&&(m>=0)) {
mark=m;
return true;
}else{
ExceptionCourse a;
throw a;
//return false;

}
}

C++ 异常处理

大丈夫奶子大 12 years ago

Your Answer