SORU
12 Kasım 2014, ÇARŞAMBA


`At kullanarak;` değiştirilmiş bir istisna üzerinde

bar bir istisna bir fonksiyon foo var.

Başka bir işlev foo diyorum ama bar dışında eğer atılan için biraz daha ayrıntı eklemek için yeteneği var. (Çok var o işlev genel doğası gereği ait değil gibi foo parametre olarak böyle bir bilgi geçmek isterim.)

Arayan bu yüzden:

try {
    foo();
} catch (bar& ex){
    ex.addSomeMoreInformation(...);
    throw;
}

throw yeniden atmak değiştirilmiş dışında veya throw ex; kullanmam gerekiyor? İkincisi muhtemelen tercih yapmam çok değer bir kopyasını alacaktır. throw değeri bir kopyasını da oraya koyabilir? Olmaz sanıyorum.

(Ama bir belirsiz veya tanımsız emin olmak istiyorum bu yüzden inşa), evliliğim hakkında endişeliyim olun olabilirim farkındayım.

CEVAP
12 Kasım 2014, ÇARŞAMBA


Aslında, standart çok hassas burada. [hariç.kapı/17:

İşleyici sabit olmayan bir nesneye başvuru beyan ederherhangi bir başvurulan nesne değişiklikleri geçici nesne için yapılacak değişiklikler o zaman başlatıldıat-ifadeidam edildi ve olacak etkisi, o nesne rethrown olmalıdır.

Ve [hariç.at]/8:

Birat-ifadehayır işlenen rethrows ile şu anda başa istisna (15.3).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008