2010-04-25 3 views
22

में श्रेणी अपवाद से बाहर फेंकना यह कोड काम करता है;सी ++

int at(int index) { 
    if(index < 1 || index >= size) 
    throw 0; 

    return x[index]; 
} 

फिर भी यह मैं त्रुटि नहीं

int at(int index) { 
    if(index < 1 || index >= size) 
    throw std::out_of_range; 

    return x[index]; 
} 

प्राप्त करता है "उम्मीद से पहले प्राथमिक अभिव्यक्ति ';' '। अब ... यह मुझे आश्चर्य है क्योंकि मैं जानता हूँ कि std :: out_of_range मौजूद है और मैं

#include <stdexcept> 
+2

दो कार्यों के बीच क्या अंतर है? – kennytm

+0

ओह, प्रतिलिपि गलती, अब ठीक है। – Suugaku

+6

0 सीमाओं से बाहर क्यों है? –

उत्तर

62

throw std::out_of_range ("blah"); साथ throw std::out_of_range; बदलें की है। अर्थात। आपको एक वस्तु बनाने की जरूरत है, आप एक प्रकार फेंक नहीं सकते हैं।