Daha önce belirtildiği gibi bu mümkün, ama görmek zorunda 'başarısız olmayı Şunun içinde. İlk try-catch-blokta istisnasız yakalanırsa, dış catch-block tarafından yakalanmayacaktır. Bununla birlikte, iç yakalama bloğu tarafından yakalanmazsa, dış yakalama bloğunda eşleşen bir istisna işleyicisi bulmaya çalışacaktır.
Ayrıca explicitely iç istisna-işleyicisinde throw;
kullanarak bir sonraki istisna işleyici için ayrıca özel durum oluşturabilir.
Örneğin bu kodu:
try
{
try
{
throw std::runtime_error("Test");
}
catch (std::runtime_error& e)
{
std::cerr << "Inner Exception-Handler: " << e.what() << std::endl;
throw;
}
}
catch (std::exception& e)
{
std::cerr << "Outer Exception-Handler: " << e.what() << std::endl;
}
Çıkacaksınız:
Inner Exception-Handler: Test
Outer Exception-Handler: Test
Bu std::runtime_error is derived from std::exception çünkü çalışır. Ayrıca, önemsiz bir örnekte sadece birbirleri sonra yakalama blokları yazmak da mümkündür olduğuna dikkat etmelidir, ancak öncelikle catch-bloğundan sonra başka kod yürütmesine istiyorsanız yuva bunları gerekecektir.
Sadece bu kişilerden daha akıllı olduklarını düşünen ve bu web sitesinin sahibi olduklarını düşündüklerini düşünen bu insanları sevmelisiniz –
Genellikle bu tür soruları şüphe parasıyla veririm: sadece derleyiciniz üzerinde çalıştığı için bunun bir parçası olmadığı anlamına gelmez standardın Sohbet de doğrudur. – rmeador
Shoho bu soruyu sormadan en az 90 saniye kurtardı! –