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

  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008