2012-07-20 25 views

cevap

10

Bu işlev engellemeyi deneyin. Sadece türetilmiş sınıf kuruculardaki yakalama hataları için c-torslarda kullanın. Bu özellik hakkında daha fazla bilgiyi standart olarak, örneğin n3337 taslak par. 15, 15.1.

4 bir fonksiyon deneyin blok iştirakçi bir ctor-başlatıcıyla işleyici seq, mevcut olduğu takdirde, ve bileşik tablosu. Bileşik beyanının yürütülmesi sırasında atılan bir istisnası veya yapıcıları ve yıkıcılar için, sınıflandırma veya sıfırlama sırasında, sınıfın alt nesnelerini sırasıyla imhası, bir işleyiciye aynı işlev-try-bloğu içinde aktarır. try-blok transfer kontrolü 'un çalıştırılması sırasında atılan bir istisnasının yolu diğer işleyicilere. [Örnek:

int f(int); 
class C { 
int i; 
double d; 
public: 
C(int, double); 
}; 
C::C(int ii, double id) 
try : i(f(ii)), d(id) { 
// constructor statements 
} 
catch (...) { 
// handles exceptions thrown from the ctor-initializer 
// and from the constructor statements 
} 

ucuna bağlı bir vaziyette, örneğin]

bir üye nesnesini oluştururken bir kurucu atılan durumları yakalar
+1

Daha ayrıntılı bir açıklama ve gerekçe için http://www.drdobbs.com/introduction-to-function-try-blocks/184401297 adresine bakın. – pmr

+0

vay .. daha önce hiç görmedim ... Teşekkürler için teşekkürler – PermanentGuest

+0

@PermanentGuest bu özellik nadiren kullanılır, çünkü başka bir istisna atmazsanız, catch bloğu istisnasının sonunda yeniden çizilecek. işlev-try-block istisnayı alamaz. – ForEveR