No mundo da programação de computadores, encontrar erros é um fenômeno comum. Tomemos, por exemplo, o KeyError: 'acc' in Python. Este erro geralmente surge quando uma chave específica que estamos tentando acessar em um dicionário não existe. Felizmente, Python fornece uma solução eloquente para lidar com esses problemas e evitar que seu código trave. Isso inclui a aplicação de procedimentos de tratamento de exceções, o emprego da função get() ou a verificação de chaves antes de acessá-las. Com a abordagem correta, esse erro pode ser gerenciado com habilidade.
Compreendendo KeyError
KeyError em Python é um tipo de exceção que surge quando você tenta acessar um dicionário com uma chave que não existe. É sempre uma boa prática de codificação e de acordo com a documentação oficial do Python, verificar se uma chave está presente antes de tentar acessar seu valor.
#Random example of KeyError
dict1 = {"a":1,"b":2,"c":3}
print(dict1["d"])
No código acima, 'd' não existe no dicionário dict1, portanto resulta em KeyError: 'd'.
Solução para KeyError: 'acc'
A solução para lidar KeyError efetivamente se enquadra em como você aborda o acesso a itens de um dicionário. Uma maneira de evitar esse erro é usar o get() método ao fazer referência a uma chave.
Veja como você faria isso:
#prints None instead of giving KeyError
print(dict1.get("d"))
O código retorna None, pois “d” não está no dicionário. Usando get() método, também podemos fornecer um valor padrão que é retornado quando a chave não existe.
#prints 'default' instead of None
print(dict1.get("d", 'default'))
Manipulação de exceção é outra técnica para lidar com KeyError. Isso pode ser feito com a ajuda de blocos try-except conforme mostrado abaixo.
try:
# code that can raise an exception
print(dict1["d"])
except KeyError:
# Execute this code in case of KeyError
print('Key does not exist')
Este código não encerra o programa inteiro e trata a exceção normalmente imprimindo “A chave não existe”, o que é muito mais fácil de usar.
Explicando o código passo a passo
Dada a complexidade de lidar com KeyErrors, é importante decompor o código acima, pouco a pouco.
No primeiro exemplo, definimos um dicionário chamado 'dict1' com pares de valores-chave de {'a': 1, 'b': 2, 'c': 3}. Tentamos então acessar uma chave 'd' que não existe em 'dict1'. Isso faz com que o Python gere um KeyError com 'd' como mensagem.
No segundo exemplo, usamos o método get(). Este método de dicionário Python recupera o valor de uma determinada chave. Se a chave não estiver presente, por padrão, ela retornará 'Nenhum'. Isso evita que o Python gere um KeyError.
No terceiro exemplo, definimos um valor padrão de 'default' para obter uma mensagem útil em vez de 'None'. Esta é uma forma mais informativa de sinalizar que a chave não estava presente.
Por último, usamos um bloco try-except para tratamento de exceções. Escrevemos nosso código em 'try' e definimos o que deve ser feito caso ocorra um 'KeyError' em 'except'. Isso fornece uma rede de segurança na qual o código pode cair, em vez de quebrar ou travar.
Implementar essas táticas em sua programação Python pode ajudar muito a aprimorar suas habilidades de codificação.