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

  • Atlantic Records

    Atlantic Rec

    15 Aralık 2006
  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006