Como lidar com o erro que ocorre em dar o número errado de parâmetros em uma chamada de função em Python?
-
19-08-2019 - |
Pergunta
Quando eu dou número errado de parâmetros em uma função, eu recebo erros. Como posso lidar com isso?
Eu dei
def fun_name(...):
try:
...
except TypeError:
print 'Wrong no of arg'
Ele não está funcionando.
Ajuda por favor.
Solução
O chamador desencadeia essa exceção, não o receptor.
Se você quiser que a função de recepção para explicitamente verificar argumento contar que você vai precisar usar varargs:
def fun_name(*args):
if len(args) != 2:
raise TypeError('Two arguments required')
Outras dicas
Você precisa lidar com isso, onde você chamar a função.
try:
fun_name(...)
except TypeError:
print "error!"
Se você chamar uma função com o número errado de parâmetros, em seguida, há duas possibilidades:
- Ou você projetar sua função para lidar com um número arbitrário de argumentos. Então você deve saber o que fazer com os argumentos extras. A resposta de shows Alec Thomas-lhe como lidar com este caso.
- Ou seu projeto é fundamentalmente falho e você está em apuros. Pegando o erro não ajuda neste caso.
Se você remover as partes try...catch
deve mostrar-lhe que tipo de exceção que está jogando.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow