इस कोड के साथ:
int main()
{
try
{
throw -1;
}
catch (int& x)
{
std::cerr << "We caught an int exception with value: " << x << std::endl;
}
std::cout << "Continuing on our merry way." << std::endl;
return 0;
}
हमारे पास है:
/tmp$ ./prorgam.out
Continuing on our merry way
We caught an int exception with value: -1
catch
ब्लॉक कैसे पढ़ता -1
है int&
? हम एक नॉन-कॉन्स्टल लैवल्यू रेफरेंस को वैल्यू नहीं दे सकते।
और std::cout
पहले std::cerr
कथन से पहले दूसरे कथन को क्यों निष्पादित किया जाता है?
error stream
नहीं है standard stream
।
throw
आपके द्वारा पास की गई वस्तु की प्रतिलिपि (या चाल) बनाता है। संदर्भ उस प्रति को बांधता है। यह इस तरह से समझ में आता है कि कॉपी एक लवलीन है।
We caught an int exception with value: -1
लाइन पहले मुद्रित किया जाना चाहिए।