Les mises en œuvre peuvent différer, mais il y a certaines des idées de base qui découlent de ces exigences.
L'exception de l'objet lui-même est un objet créé dans une fonction, détruit en l'appelant. Par conséquent, il est généralement impossible de créer l'objet sur la pile. D'autre part, de nombreux objets d'exception ne sont pas très grandes. Ergo, on peut créer des e.g 32 octets de la mémoire tampon et le débordement de tas si un plus grand objet exception est réellement nécessaire.
Comme pour le transfert de contrôle, deux stratégies existent. L'un est d'enregistrer assez d'informations dans la pile elle-même à se détendre de la pile. C'est en fait une liste de destructeurs de courir et de gestionnaires d'exceptions qui pourraient intercepter l'exception. Lorsqu'une exception se produit, exécutez l'arrière de la pile de l'exécution de ces destructeurs jusqu'à ce que vous trouver un correspondant de l'attraper.
La deuxième stratégie se déplace de cette information dans des tables à l'extérieur de la pile. Maintenant, lorsqu'une exception se produit, la pile d'appel est utilisé pour trouver les étendues qui sont entrés, mais pas quitté. Ceux-ci sont alors recherchés dans les tableaux statiques pour déterminer où la levée d'une exception seront traitées, et qui destructeurs de fonctionner entre. Cela signifie qu'il ya moins d'exception au-dessus sur la pile; des adresses de retour sont nécessaires de toute façon. Les tableaux sont données supplémentaires, mais le compilateur ne peut pas les mettre dans une demande chargés segment du programme.