İşlenilmeyen C++ İfadeleri

Eşleşen bir işleyici varsa (ya da üç nokta yan yana catch işleyicisi) geçerli durum için önceden tanımlanmış bulunan terminate çalışma zamanı işlevi çağrılır. (Ayrıca açıkça çağırabilir terminate herhangi birinde İşleyicileriniz.) Varsayılan eylemin terminate çağırmaktır abort.İsterseniz terminate uygulama çıkmadan önce programınızda başka bir işlevi çağırmak için arama set_terminate işlevini kullanarak, tek bir bağımsız değişken çağrılacak işlevin adı.Arayabileceğiniz set_terminate programınızda herhangi bir noktada.Bu terminate Yordamını çağırıyor her zaman son işlev bağımsız değişken olarak verilen set_terminate.

Örnek

Aşağıdaki örnek oluşturur bir char * bir özel durum türü özel durumları yakalamak için tasarlanmış bir işleyici içermez, ancak char *.Çağrı set_terminate söyler terminate çağırmak için term_func.

// exceptions_Unhandled_Exceptions.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
void term_func() {
   cout << "term_func was called by terminate." << endl;
   exit( -1 );
}
int main() {
   try
   {
      set_terminate( term_func );
      throw "Out of memory!"; // No catch handler for this exception
   }
   catch( int )
   {
      cout << "Integer exception raised." << endl;
   }
   return 0;
}

Çıktı

term_func was called by terminate.

Bu term_func işlevini sonlandırmak programı veya geçerli iş parçacığı, ideal olarak çağırarak exit.Değildir ve bunun yerine kendi çağırana döndürür abort denir.

Ayrıca bkz.

Başvuru

C++ Özel Durum İşleme