איך לתפוס out_of_range?

  • פותח הנושא ASHY
  • פורסם בתאריך

ASHY

New member
איך לתפוס out_of_range?

כשאני קורא לפונקציה vector::at() היא מפעילה את הפונקציה __throw_out_of_range שכנראה כמו שמה זורקת את הביטוי out_of_range. עד לפה נכון? טוב עכשיו אני רוצה לתפוס את אותו הביטוי אבל
catch(out_of_range){}​
פשוט לא עובד. איך אני יכול לתפוס את אותו ביטוי חמקמק?
 

frangelico

New member
קשה לנחש מה עשית אבל

באופן כללי זה אמור להיראות כך:
// file: exception.cpp #include <iostream> #include <vector> #include <stdexcept> using namespace std; int main() { vector<int> v(20); // fill the vector // for (int i = 0; i < 20; i++) { v = i; } // display values with exception out_of_range // try{ for (int i = 0; i < 20; i++) { cout << v.at(i+1); } } catch(out_of_range e){ cerr << endl << e.what() << endl; } return 0; }
 
למעלה