mail
notice

Filtres d’Exceptions et code asynchrone dans les catch

home

Avec l’arrivée de Visual Studio 2015, on va enfin pouvoir se mettre au C#6 du Framework 4.6. La gestion des exceptions Try … catch … finally s’enrichi avec la possibilité de filtrer les exceptions. C’est nouveau en C# mais ça existe en VB.NET.
Voici ce qu’on peut faire en VB.NET :

Try
    ' notre bloc de code ici
Catch ex As Exception When Err.Number = 5
    ' gestion de l'erreur 5
End Try

catch …. if …

Et bien plus de jaloux, on peut faire de même en C# :

try
{
    // notre bloc de code ici
}
catch(Exception ex) if (ex.HResult == 0x80070035)
{
    // gestion du pb de chemin
}

Auparavant dans le catch(Exception ex), il suffisait de mettre un bloc de if … else if … else et cela remplissait quasiment le même rôle.

code asynchrone dans les catch

Finalement ça pouvait être naturel de faire ça auparavant mais c’est possible que maintenant :

try
{
    // notre bloc de code ici
}
catch
{
    await asyncMethodCool();
}
finally
{
    await asyncMethodSupraCool(xxx);
}

Avant il aurait fallu ruser en utilisant par exemple une variable et après le finally tester la variable et appeler notre méthode asynchrone. Mais ça, c’était avant.

forum

Laisser un commentaire

content
partner