Lors de l'appel de bibliothèques non gérées, vous pouvez rencontrer des exceptions natives. Ces exceptions proviennent du code sous-jacent et diffèrent des exceptions levées par le .NET Framework.
Vous pouvez en effet intercepter les exceptions natives dans le code C# à l'aide de la classe Win32Exception. Cette classe fournit des informations supplémentaires sur l'exception, y compris son code d'erreur natif via la propriété NativeErrorCode.
Pour gérer efficacement les exceptions natives, vous pouvez utiliser le bloc try...catch comme suit :
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 { // Attempt to open the file using a native application process.StartInfo.FileName = filePath; process.StartInfo.Verb = "Open"; process.StartInfo.CreateNoWindow = true; process.Start(); } catch (Win32Exception e) { // Handle specific native error codes switch (e.NativeErrorCode) { case ERROR_FILE_NOT_FOUND: case ERROR_ACCESS_DENIED: case ERROR_NO_APP_ASSOCIATED: MessageBox.Show(this, e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); break; } } }
Cet exemple gère les codes d'erreur natifs courants lors de la tentative d'ouverture d'un fichier et affiche les messages d'erreur appropriés au utilisateur.
Pour une gestion complète des exceptions, il est crucial de consulter la documentation de la bibliothèque non gérée spécifique que vous utilisez pour déterminer les erreurs natives potentielles qui peuvent survenir.
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!