Pourquoi Les Programmes Plantent

Pourquoi Les Programmes Plantent
Pourquoi Les Programmes Plantent

Vidéo: Pourquoi Les Programmes Plantent

Vidéo: Pourquoi Les Programmes Plantent
Vidéo: Diagnostic et dépannage quand le système Windows se plante ou se bloque ou se fige 2024, Avril
Anonim

La variété des tâches résolues aujourd'hui à l'aide d'ordinateurs personnels est fournie par l'existence d'un vaste ensemble de programmes d'application. La commodité de travailler avec le logiciel dépend en grande partie de sa fiabilité, qui s'exprime en l'absence de situations d'urgence. Cependant, de nombreux programmes se bloquent au moment le plus inopportun. Pourquoi?

Pourquoi
Pourquoi

Le mécanisme d'exception est utilisé pour suivre et gérer des situations spéciales, anormales ou erronées qui surviennent lors du fonctionnement de programmes informatiques sous le contrôle de systèmes d'exploitation modernes. Les exceptions peuvent être matérielles (lancées par le processeur) et logicielles (lancées par l'application elle-même ou un composant externe de plug-in).

Quel que soit le type, l'exception peut être interceptée et gérée correctement. Les exceptions non détectées vont au gestionnaire de bibliothèque d'exécution racine ou à un gestionnaire installé sur le système d'exploitation. Si cela se produit, le programme se bloque avec un message ou une fenêtre de fin anormale (sous Windows). Si le gestionnaire du système d'exploitation ne fonctionnait pas (par exemple, il a été délibérément supprimé), le programme "se bloque silencieusement". Ainsi, les programmes se bloquent en raison d'exceptions qui ne peuvent pas être gérées. Les raisons de l'apparition d'exceptions sont différentes.

Dans l'écrasante majorité des cas, les programmes plantent à cause de l'exécution de leur propre code contenant des erreurs d'implémentation explicites ou implicites. La liste des causes possibles des urgences est très longue. Il s'agit à la fois d'erreurs classiques d'opérations sur des nombres à virgule flottante (par exemple, division par 0) et d'erreurs de travail en mémoire (lecture ou écriture en dehors de l'espace d'adressage du processus, accès aux pages protégées, écriture dans une zone mémoire en lecture seule), pile de débordement due à une récursivité infinie, etc. Dans ces cas, des exceptions matérielles ou des exceptions de système d'exploitation sont levées.

Les erreurs implicites incluent divers cas de filtrage insuffisant des données d'entrée, le manque de validation des valeurs de pointeur, et bien plus encore. De telles lacunes ne conduisent à des situations exceptionnelles que dans certains cas.

Des erreurs d'implémentation peuvent également être trouvées dans les composants externes utilisés par l'application. Par exemple, dans des bibliothèques dynamiques qui fournissent les fonctionnalités ou modules complémentaires nécessaires. Le code de programme qui est implicitement chargé dans l'espace d'adressage d'un processus (par exemple, afin d'intercepter certaines fonctions API) peut également provoquer le plantage du programme.

De nombreux composants et bibliothèques (par exemple, ADO sous Windows) utilisent le mécanisme d'exception par programmation en priorité pour signaler les erreurs. L'absence ou le traitement incomplet des exceptions par ce type d'application peut conduire à son plantage même dans des situations tout à fait anodines (comme la perte de connexion à la base de données).

Conseillé: