Con este primer código simplemente queremos comprobar que:
def fun(x):
pass
fun() # da error al pasar un número de argumentos distinto al esperado
if
¶En un primer paso vamos a mostrar un mensaje informando que no se puede invocar una función sin pasarle un argumento cuando éste es requerido.
def funcion(x=None):
if x is None:
print("ERROR: no se permite un valor nulo.")
else:
print("Todo correcto.")
funcion("Hola") # si como argumento pasamos un string vemos que funciona correctamente
funcion(34) # si como argumento pasamos un número vemos que funciona correctamente
funcion() # si no existe argumento salta el error
raise
invocar un error¶El error que creamos es un error específico que nosotros elegimos.
Vamos a lanzar un ValueError con el mensaje que nosotros queremos.
ValueError: ERROR: no se permite un valor nulo.
Sustituimos el print por un raise
que nos permite invocar un error concreto.
Al ejecutar la función sin pasarle ningún argumento se producirá un error forzado de forma manual de tipo ValueError y con el mensaje que nosotros hemos querido.
def su_funcion(x=None):
if x is None:
raise ValueError("ERROR: no se permite un valor nulo.") # Creamos y lanzamos nosotros un ValueError
else:
print("Todo correcto.")
su_funcion() # si no existe argumento salta el error
Se trata del valor de error que específicamente hemos generado nosotros y al que añadimos una excepción.
def su_funcion(x=None):
try:
if x is None:
raise ValueError("ERROR: no se permite un valor nulo.") # Creamos y lanzamos nosotros un ValueError
else:
print("Todo correcto.")
except ValueError:
print("Puede corregir este ERROR introduciendo un argumento al invocar la función.") #mensaje lanzado desde la excepción
su_funcion() # si no existe argumento salta el error