Encontrei uma feature no Visual Basic .NET que particularmente até hoje nunca utilizei, mas achei bastante interessante. Trata-se da condição When em um bloco Catch do tratamento de exceções. Através desta condicional, definimos se a Exception que foi gerada pelo código que estava sendo gerenciado pelo bloco Try irá ou não ser tratada. Para exemplificar, veja o código abaixo:
Dim gerarException As Boolean = True
Try
Throw New Exception(“Erro na aplicação!”)
Catch ex As Exception When gerarException
Console.WriteLine(“Erro na Aplicação, mas foi tratado.”)
End Try
Analisando o código acima vemos que uma Exception é gerada dentro do bloco Try. Se a variável booleana estiver definida como True, o bloco Catch que trata a Exception será executado, do contrário a mesma é atirada na tela, mas claro, isso baseando-se no código do exemplo acima.