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

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • Pepsi

    Pepsi

    1 Kasım 2005
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006