Gestion des exceptions natives dans le code C#
En C#, il est possible d'intercepter les exceptions provenant de bibliothèques non gérées. Un bloc try-catch standard est suffisant pour gérer de telles exceptions. Cependant, pour accéder à des informations d'erreur spécifiques à partir de l'exception native, vous pouvez utiliser la classe Win32Exception.
La classe Win32Exception fournit une propriété NativeErrorCode qui renvoie le code d'erreur natif associé à l'exception. Vous pouvez utiliser cette propriété pour effectuer une manipulation spécifique ou afficher des messages d'erreur personnalisés.
Par exemple, considérons un scénario dans lequel vous tentez d'ouvrir un fichier à l'aide d'une application native. Le code ci-dessous montre comment gérer les exceptions potentielles, y compris les exceptions natives :
const int ERROR_FILE_NOT_FOUND = 2; const int ERROR_ACCESS_DENIED = 5; const int ERROR_NO_APP_ASSOCIATED = 1155; void OpenFile(string filePath) { Process process = new Process(); try { process.StartInfo.FileName = filePath; process.StartInfo.Verb = "Open"; process.StartInfo.CreateNoWindow = true; process.Start(); } catch (Win32Exception e) { if (e.NativeErrorCode == ERROR_FILE_NOT_FOUND || e.NativeErrorCode == ERROR_ACCESS_DENIED || e.NativeErrorCode == ERROR_NO_APP_ASSOCIATED) { MessageBox.Show(this, e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }
Dans cet exemple, nous captons l'exception Win32 et vérifions la propriété NativeErrorCode. Si le code d'erreur correspond à l'une des valeurs spécifiées (par exemple, fichier introuvable, accès refusé, etc.), nous affichons un message d'erreur personnalisé.
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!