Les signaux UNIX et exceptions C++ sont deux notions différentes.
Le bloc try/catch te permet de gérer les exceptions C++ runtime sur tous les OS, comme une division par zéro ou un cast invalide.
Cas typique : tu chopes l'élément d'une collection par retour de fonction, tu essaies de le caster dans un type connu, ça pète, tu essaies de le caster dans un autre, etc...
Les signaux UNIX (dont le SIGSEGV correspond aux erreurs de segmentation) sont une notion plus bas niveau, propre à l'OS, et le code sera forcément propre à ces systèmes (il existe bien un namespace std::signal mais j'ignore comment il se comporte sur d'autres OS).
# Différent
Posté par Tarnyko (site web personnel) . En réponse au message try catch et sigsegv. Évalué à 0. Dernière modification le 09 février 2021 à 12:20.
Les signaux UNIX et exceptions C++ sont deux notions différentes.
Le bloc try/catch te permet de gérer les exceptions C++ runtime sur tous les OS, comme une division par zéro ou un cast invalide.
Cas typique : tu chopes l'élément d'une collection par retour de fonction, tu essaies de le caster dans un type connu, ça pète, tu essaies de le caster dans un autre, etc...
Les signaux UNIX (dont le SIGSEGV correspond aux erreurs de segmentation) sont une notion plus bas niveau, propre à l'OS, et le code sera forcément propre à ces systèmes
(il existe bien un namespace std::signal mais j'ignore comment il se comporte sur d'autres OS).