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 :
' 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# :
{
// 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 :
{
// 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.