Try/Except vs. If/Else: Qual abordagem é preferível?
Ao trabalhar com exceções em Python, os desenvolvedores muitas vezes enfrentam o dilema de testar a validade ou tentar uma ação e lidar com qualquer exceção resultante. Este artigo investiga as nuances de cada abordagem, fornecendo orientação e exemplos para informar a tomada de decisões.
Tente/Exceto: Abraçando Exceções
De acordo com o PEP 20, erros nunca deve passar silenciosamente, a menos que seja explicitamente silenciado. Embora isso possa sugerir que o uso de um bloco try/except para lidar com exceções seja aceitável, é importante observar a natureza da exceção que está sendo capturada.
A abordagem try/except é vantajosa quando a exceção é genuinamente excepcional, ocorrendo apenas em raras circunstâncias. Isso permite uma execução mais rápida, eliminando pesquisas desnecessárias. Além disso, ele se alinha com a filosofia EAFP do Python (mais fácil pedir perdão do que permissão).
Aceleração e código mais limpo
Tentar/exceto pode levar à velocidade -ups quando o caso excepcional é pouco frequente e a verificação de sua ocorrência exigiria pesquisas adicionais. Por exemplo, tentar acessar um elemento em um índice específico dentro de uma lista longa é mais rápido usando try/except em comparação com verificar se o índice está dentro dos limites usando if/else.
Além disso, try/except promove um código mais limpo condensando várias instruções condicionais em um único bloco, melhorando a legibilidade e reduzindo o número de linhas.
Exemplo:
Considere o seguinte código snippets:
# If/else approach
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
# Try/except approach
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
A abordagem try/except é mais concisa, evita a pesquisa extra e trata o IndexError somente quando ele ocorre.
Conclusão
Embora try/except e if/else tenham seus méritos, try/except é geralmente preferido quando resulta em melhorias de velocidade, código mais limpo ou lida com casos excepcionais sem sacrificando a visibilidade da exceção. Ao abraçar exceções e usá-las com sabedoria, os desenvolvedores Python podem criar código robusto, legível e eficiente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3