Maison >développement back-end >C++ >Comment puis-je détecter et gérer les exceptions natives en C# ?
Détecter les exceptions natives dans le code C#
En programmation C#, il est possible de détecter les exceptions provenant de bibliothèques non gérées, souvent appelées « natives exceptions." Ces exceptions se produisent lorsque le code natif sous-jacent rencontre une erreur qui ne peut pas être gérée dans le code géré.
Comment intercepter les exceptions natives
Pour intercepter les exceptions natives, vous pouvez utilisez la classe Win32Exception. Cette classe expose une propriété NativeErrorCode qui contient le code d'erreur généré par la bibliothèque non gérée. Vous pouvez utiliser cette propriété pour gérer l'exception de manière appropriée.
Exemple d'utilisation
L'exemple suivant montre comment intercepter une exception native et la gérer à l'aide de la classe Win32Exception :
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 { // Calls native application registered for the file type // This may throw a native exception 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, la méthode OpenFile() tente d'ouvrir un fichier à l'aide d'une application native. Si le fichier est introuvable, l'accès est refusé ou aucune application n'est associée au type de fichier, une exception native est levée. Le bloc catch utilise la classe Win32Exception pour intercepter l'exception et la gérer de manière appropriée en affichant une boîte de message avec les détails de l'erreur.
Remarque : Vous n'avez pas besoin d'apporter de modifications particulières au try...catch block pour intercepter les exceptions natives. Le mécanisme standard try...catch est suffisant pour gérer les exceptions gérées et natives.
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!