Visual C# 6.0 - Novidades - Selecionando Exceções em um bloco Try...Catch


 Hoje vamos mostrar o novo recurso do Visual C# 6.0 que será lançado com o Visual Studio 2015 para selecionar exceções em um bloco try...catch.
 
Estou usando a versão RC do Visual Studio 2015.

 

Se você conhece a linguagem VB .NET sabe que podemos utilizar a cláusula When para selecionar exceções em um bloco try...catch.

Pois bem, esse recurso também foi implementado no Visual C# em sua versão 6.0.

Apenas para lembrar a sintaxe do VB .NET :

 Try
     [ tryStatements ]
     [ Exit Try ]
 [ Catch [ exception [ As type ] ] [ When expression ]
     [ catchStatements ]
     [ Exit Try ] ]
 [ Catch ... ]
 [ Finally
     [ finallyStatements ] ]
 End Try

Onde a cláusula When expession  tem o seguinte significado :

When Opcional. Uma declaração de Catch com uma cláusula de When captura exceções somente quando expression é avaliada como True. Uma cláusula When é aplicada somente após verificar o tipo de exceção, e expression pode se referir ao identificador que representa a exceção.
expression Opcional. Deve ser implicitamente  conversível para Boolean. Qualquer expressão que descrever um filtro genérico. Normalmente usado para filtrar por número de erro. Usado com a palavra-chave de When para especificar as condições sob as quais o erro será capturado.

Agora o desenvolvedor C# pode fazer o tratamento de exceções usando também a cláusula when conforme vemos no trecho de código a seguir obtido na versão Visual Studio 20115 RC :

            try
            {
                // Executa o codigo
                //...
            }
            catch (SqlException ex) when (ex.Server == ".\\SQLEXPRESS")
            {
                Console.WriteLine("SQL Provider Error: " + ex.Message);
            }
            catch (Exception ex) when (ex.InnerException.ToString() == "Parameter Error")
            {
                Console.WriteLine("SQL Provider Error: " + ex.Message);
            }
            finally
            {
                nResultado = -1;
            }

Nota :

Vi alguns exemplos usando a cláusula if no lugar do when mas na versão Release Candidate do Visual Studio 2015 somente a cláusula when funcionou.

Na figura abaixo vemos que ao usar a cláusula if o compilador indicou um erro de sintaxe informando que espera a cláusula when :

Dessa forma parece que a partir da versão Release Candidate do Visual Studio 2015 a condição definida na cláusula try...catch usa a palavra reservada when.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti