es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Levantar Excepción sin texto de rastreo para solicitudes web HTTP.

Tengo este código y en el segundo enlace debería producir una excepción 404.

La cosa es que obtengo el mensaje de la manera en que lo codifiqué, pero también obtengo un mensaje de rastreo como si algo estuviera mal con mi código.

Es una función llamada “get_headers_if” y la entrada puede ser response_url o response_url_2.

import requests
import json
def get_headers_if(response):
if response.status_code==200:
headers=response.headers
print(“Los encabezados para esta URL:”, response.url, “son:”, headers)
else:
raise Exception(“Respuesta inesperada (%s: %s).” % (response.status_code, response.reason))

response_url=requests.get(“http://wikipedia.org”)
response_url_2=requests.get(“http://google.com/thehearthisflat”)
get_headers_if(response_url)
get_headers_if(response_url_2)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que la función get_headers_if está generando una excepción cuando el código de estado de respuesta no es 200. Este comportamiento es esperado y es necesario para manejar respuestas inesperadas.

    El mensaje de seguimiento de rastreo indica que la excepción fue generada en línea 8, que es donde se encuentra la instrucción raise. El mensaje de seguimiento de rastreo también indica que la excepción se generó con el mensaje “Respuesta inesperada (404: No encontrado).” Esto verifica que la función generó correctamente una excepción cuando el código de estado de respuesta no era 200.

    Si el mensaje de seguimiento de rastreo está causando confusión o preocupación, puede ser capturado usando un bloque try-except. Esto puede ser útil para manejar excepciones de manera elegante y brindar mensajes de error más amigables para el usuario.

    En general, el código parece estar funcionando como se pretendía y está generando correctamente una excepción cuando el código de estado de respuesta no es 200.

Comments are closed.