Aracılığıyla paylaş


İşlenemeyen C++ özel

Eşleşen bir işleyici, (ya da üç nokta yan yana catch işleyicisi) geçerli durum için önceden tanımlanmış bulunan terminate çalıştırma işlevi olarak adlandırılır.(Ayrıca açıkça çağırabilir terminate sizin işleyicileri de.) Varsayılan eylemi terminate çağırmaktır abort.İsterseniz terminate uygulama çıkmadan önce programın diğer bir işlev çağrısı çağrısı set_terminate tek bağımsız değişken olarak çağrılacak işlevin adını işleviyle.Arayabileceğiniz set_terminate programınızda herhangi bir noktada.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 yaratmaz bir char * durum türü özel durumları yakalamak üzere tasarlanmış bir işleyicisi içermiyor 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.

term_func İşlevi işten program veya geçerli iş parçacığı, ideal olarak çağırarak exit.Değildir ve bunun yerine kendi çağırana verir, abort olarak adlandırılır.

Ayrıca bkz.

Başvuru

C++ özel durum işleme