¿Cómo manejar el error que ocurre al dar un número incorrecto de parámetros en una llamada de función en Python?

StackOverflow https://stackoverflow.com/questions/456673

  •  19-08-2019
  •  | 
  •  

Pregunta

Cuando doy un número incorrecto de parámetros en una función, obtengo errores. ¿Cómo lo manejo?

Di

def fun_name(...):
    try:
        ...

    except TypeError:
        print 'Wrong no of arg'

No funciona.

Ayuda por favor.

¿Fue útil?

Solución

La persona que llama activa esta excepción, no el receptor.

Si desea que la función de recepción verifique explícitamente el recuento de argumentos, deberá usar varargs:

def fun_name(*args):
  if len(args) != 2:
    raise TypeError('Two arguments required')

Otros consejos

Debe manejarlo donde llama a la función.

try:
  fun_name(...)
except TypeError:
  print "error!"

Si llama a una función con el número incorrecto de parámetros, entonces hay dos posibilidades:

  • O diseñas tu función para manejar un número arbitrario de argumentos. Entonces deberías saber qué hacer con los argumentos adicionales. La respuesta de Alec Thomas le muestra cómo manejar este caso.
  • O su diseño es fundamentalmente defectuoso y usted está en serios problemas. Detectar el error no ayuda en este caso.

Si elimina las partes try ... catch , debería mostrarle qué tipo de excepción está lanzando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top