Dangers liés à l'utilisation de Bare 'sauf'
En essayant de créer une fonction qui détecte la présence d'une image à l'écran, un développeur a rencontré un avertissement de PyCharm pour éviter de laisser « sauf » vide. Pour comprendre le problème, examinons la fonction fournie :
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except: return False
Le problème survient parce que le simple bloc 'sauf' intercepte toutes les exceptions, y compris celles qui ne doivent pas être supprimées. Cela inclut l'exception « KeyboardInterrupt » (lorsque les utilisateurs appuient sur Ctrl C pour interrompre l'exécution) et les erreurs générées par Python comme « SystemExit ».
Gestion appropriée des exceptions
Dans le En l'absence d'une exception spécifique attendue, il est conseillé d'attraper au moins le type de base « Exception », qui couvre toutes les exceptions « régulières ». Cependant, dans ce scénario, l'erreur attendue est explicitement indiquée dans la documentation « pyautogui » sous le nom « ImageNotFoundException ». Une fonction plus appropriée utiliserait cette exception spécifique :
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except pyautogui.ImageNotFoundException: return False
Gestion des échecs exceptionnels
N'oubliez pas que les blocs « sauf » sont destinés à récupérer des états de défaillance connus. Les échecs inconnus sont souvent irrécupérables, et il est préférable de permettre à ces exceptions de se propager dans la pile d'appels pour être traitées ailleurs. Dans ce cas, l'interpréteur Python gère par défaut les exceptions non interceptées en mettant fin au programme en douceur.
Conclusion : pour garantir une gestion robuste des exceptions, utilisez les blocs « sauf » pour intercepter les états d'échec connus et les gérer de manière appropriée. Laissez les exceptions inconnues se propager, permettant au comportement par défaut de l'interprète d'agir en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!