exception_ptr

Tipo que describe un puntero a una excepción.

typedef unspecified exception_ptr;

Comentarios

Clase interna sin especificar que se utiliza para implementar el tipo exception_ptr.

Utilice un objeto exception_ptr para hacer referencia a la excepción actual o a una instancia de una excepción especificada por el usuario. En la implementación de Microsoft, una excepción se representa mediante una estructura EXCEPTION_RECORD. Cada objeto exception_ptr incluye un campo de referencia de excepción que apunta a una copia de la estructura EXCEPTION_RECORD que representa la excepción.

Cuando se declara una variable exception_ptr, la variable no está asociada a ninguna excepción. Es decir, su campo de referencia de excepción es NULL. Este tipo de objeto exception_ptr se denomina exception_ptr null.

Utilice la función current_exception o make_exception_ptr para asignar una excepción a un objeto exception_ptr. Cuando se asigna una excepción a una variable exception_ptr, el campo de referencia de excepción de la variable apunta a una copia de la excepción. Si no hay memoria suficiente para copiar la excepción, el campo de referencia de excepción apunta a una copia de una excepción std::bad_alloc. Si la función current_exception o make_exception_ptr no puede copiar la excepción por cualquier otro motivo, llama a la función terminate (CRT) para salir del proceso actual.

A pesar de su nombre, un objeto exception_ptr no es en sí mismo un puntero. No obedece a la semántica de los punteros y no se puede utilizar con los operadores de acceso (->) o de direccionamiento indirecto (*) de miembro de puntero. El objeto exception_ptr no tiene ningún miembro de datos ni ninguna función miembro de tipo público.

Comparaciones:

Se pueden usar los operadores de igualdad (==) y desigualdad (!=) para comparar dos objetos exception_ptr. Los operadores no comparan el valor binario (patrón de bits) de las estructuras EXCEPTION_RECORD que representan las excepciones. En su lugar, los operadores comparan las indicaciones del campo de referencia de excepción de los objetos exception_ptr. Por tanto, un exception_ptr NULL y el valor NULL se consideran iguales.

Vea también

Referencia

<exception>

Transportar excepciones entre subprocesos