Bu kodla:
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;
}
Sahibiz:
/tmp$ ./prorgam.out
Continuing on our merry way
We caught an int exception with value: -1
Nasıl yok catch
blok okundu -1
olarak int&
? Sabit olmayan bir değer referansına değer atayamadık.
İkinci std::cout
ifade neden ilk std::cerr
ifadeden önce yürütülüyor ?
error stream
değil standard stream
.
throw
, kendisine ilettiğiniz nesnenin bir kopyasını oluşturur (veya taşır). Referans bu kopyaya bağlanır. Kopyanın bir değer olduğu mantıklı.
We caught an int exception with value: -1
satır yazdırılmalıdır.