Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Nouvelles

Gestion robuste des exceptions dans C ++ Builder 10.4.2

close-up-broken-egg-isolated-on-white-background

Libération de qualité

C ++ Builder 10.4.2 apporte quelques fonctionnalit√©s int√©ressantes qui, selon nous, vous aideront vraiment – la plus importante √©tant ¬ę¬†Split DWARF¬†¬Ľ, un moyen de r√©duire l’utilisation de la m√©moire dans l’√©diteur de liens en supprimant les informations de d√©bogage.¬†Si vous avez des projets qui repoussent les limites de l’√©diteur de liens, v√©rifiez-le: cela peut r√©soudre vos probl√®mes (voir¬†ce billet de blog¬†.) Cependant, RAD Studio 10.4.2 dans son ensemble √©tait aussi une ¬ęversion de qualit√©¬Ľ.¬†En fait, bien que 10.4.1 soit la version destin√©e √† la qualit√© et 10.4.2 aux fonctionnalit√©s dont vous avez besoin, nous avons r√©solu plus de probl√®mes dans 10.4.2 que dans 10.4.1!

Et C ++ Builder ne fait pas exception.

Gestion des exceptions C ++

Ce¬†merveilleux¬†jeu de mots pr√©sente le travail de gestion des exceptions que nous avons effectu√© dans 10.4.2.¬†Si c’est trop long, voici le TLDR: 10.4.2 donne √† vos applications une tr√®s grande stabilit√© et un comportement plus correct lors de la gestion des exceptions.

Nous analysons les cat√©gories de rapports de probl√®mes que nous recevons et effectuons √©galement beaucoup de travail qui nous aide √† trouver des probl√®mes en interne.¬†Une partie de ce travail consiste √† prendre en¬†charge les biblioth√®ques C ++¬†: l’utilisation de code externe est un bon moyen de garantir la compatibilit√© de notre cha√ģne d’outils.¬†En raison de ces analyses, dans la version 10.4.2, nous avons r√©vis√© une grande partie de notre gestion des exceptions pour Windows.

Les scénarios que nous avons examinés sont les suivants:

  • Exceptions dans le module¬†, lorsqu’une exception est lev√©e et intercept√©e dans le m√™me binaire, par exemple dans un m√™me fichier EXE.
  • Exceptions inter-modules¬†, lorsqu’une exception franchit une limite de module, comme √™tre lanc√©e dans une DLL mais intercept√©e dans un EXE.¬†C’est une situation plus difficile √† g√©rer, et les directives de codage indiquent qu’aucune exception ne doit s’√©chapper d’un module vers un autre‚Ķ mais, nous voyons du code l√† o√Ļ cela se produit et c’est un sc√©nario important √† aborder.¬†Cela est courant avec les packages ou lorsque plusieurs DLL et un EXE sont regroup√©s en tant qu’application.
  • Exceptions multilingues¬†, lorsqu’une exception traverse des cadres de pile appartenant √† la fois √† Delphi et C ++.¬†Les exceptions peuvent √™tre lev√©es dans une langue et intercept√©es dans une autre, ou franchir la fronti√®re plusieurs fois.
  • Lorsque tous les modules (par exemple un EXE et une DLL) sont¬†li√©s statiquement¬†, ou que tous les modules sont¬†li√©s dynamiquement (RTL dynamique.)
  • Exceptions¬†OS, C ++ et SEH
  • Les deux¬†Win32 et Win64¬†plates –¬†formes.

Beaucoup de ces sc√©narios, en particulier les modules crois√©s avec des liaisons diff√©rentes, peuvent devenir complexes.¬†L’une des principales raisons est la gestion de la d√©sallocation des m√©tadonn√©es d’exception ou d’exception dans le RTL.¬†Par exemple, supposons qu’une DLL, qui est enti√®rement li√©e statiquement et poss√®de sa propre copie du RTL, l√®ve une exception.¬†Comment un EXE, qui est √©galement li√© statiquement avec sa propre copie du RTL, ou est li√© dynamiquement mais qui a donc toujours une copie diff√©rente du RTL √† la DLL, peut g√©rer la lib√©ration de m√©moire associ√©e √† l’exception?

Pourtant, dans la version 10.4.2, nous g√©rons ces sc√©narios et prenons en charge les applications o√Ļ tous les modules sont li√©s statiquement, ou tous sont li√©s dynamiquement.¬†Nous ne prenons pas en charge les exceptions inter-modules dans les m√©langes de RTL dynamique / statique au sein d’une m√™me application.

Cela signifie que dans 10.4.2, vous devriez voir un comportement de gestion des exceptions consid√©rablement am√©lior√© et un grand nombre de probl√®mes de qualit√© r√©solus pour les exceptions dans le module, les exceptions inter-modules, o√Ļ les modules sont tous li√©s statiquement ou tous dynamiquement, pour OS, C ++ et SEH exceptions, et √† la fois sur Win32 et Win64 – une matrice de test massive.

Avec chaque version, nous visons à améliorer régulièrement C ++ Builder, et 10.4.2 est Рpourrait-on dire Рexceptionnel.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Articles Similaires
DelphiIDENouvelles

Améliorations de Code Insight dans Delphi 10.4.2

IDENouvelles

Aider l'éditeur de liens: fractionner l'utilisation de la mémoire DWARF et de l'éditeur de liens dans C ++ Builder 10.4.2

DelphiNouvelles

Travaux pratiques avec Delphi 10.4.2 - Replay du webinaire

Nouvelles

Bibliothèques C ++ Open Source dans C ++ Builder 10.4.2

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

IN THE ARTICLES