A legibilidade, facilidade de manutenção e usabilidade de instruções e expressões switch em Java seriam melhoradas por uma proposta para permitir que exceções sejam tratadas no bloco switch.

A proposta atual do OpenJDK, “Tratamento de exceções no switch (visualização)”, faria parte da Standard Edition do Java, embora nenhuma versão específica do Java SE tenha sido designada ainda como destinatário. Especificamente, a proposta pede o aprimoramento do switch para que as exceções lançadas pelo seletor (o e no switch (e)…) possam ser tratadas no bloco switch.

As metas do plano, que foi criado em 12 de janeiro e atualizado em 19 de abril, incluem melhorar a legibilidade e a capacidade de manutenção, permitindo que o switch lide de forma concisa com todos os resultados possíveis da avaliação do seletor e simplificando o uso de APIs que lançam exceções verificadas, quando usadas pelo seletor. de uma instrução ou expressão switch.

O que motiva a proposta é a noção de que aprimorar a opção para lidar com exceções do seletor agilizará o uso de bibliotecas que lançam exceções, melhorará a legibilidade e reduzirá erros. Um switch incorpora uma escolha multidirecional baseada no valor de uma expressão seletora.

Tradicionalmente, a mudança tem sido hostil às exceções, afirma a proposta. Se a expressão do seletor gerou uma exceção em vez de produzir um valor, switch relançou a exceção, dificultando o uso do switch. Os desenvolvedores foram forçados a lidar com exceções do seletor, normalmente colocando o switch em um bloco try-catch, uma abordagem desajeitada que tem desvantagens que levam a programas piores. Uma abordagem muito melhor seria permitir que os desenvolvedores tratassem uma exceção do seletor com apenas outro caseconclui a proposta.

Não é um objetivo da proposta tratar exceções lançadas pelo bloco switch no bloco switch, ou introduzir novos tipos de padrões que correspondam a exceções ou incorporar suporte para tratamento de exceções em outras instruções e expressões. Nem é objetivo alterar o modelo de exceções verificadas versus exceções não verificadas, seja em geral ou no âmbito de uma mudança, diz a proposta.