문제상황:
파이썬으로 작성된 스크립트에서 에러가 발생했습니다. 이 코드는 외부 API에 요청을 보내고 응답을 받아 처리하는 작업을 수행합니다.
에러가 발생한 코드와 이에 대한 설명:
import requests
def fetch_data(url, headers):
response = requests.get(url, headers=headers)
return response.json()
url = "https://api.example.com/data"
headers = {"Authorization": "Bearer my_invalid_token"}
data = fetch_data(url, headers)
print(data)
에러로그 내용:
requests.exceptions.RequestException: 401 Client Error: Unauthorized for url: https://api.example.com/data
해결방법:
에러가 수정된 코드와 수정된 부분에 대한 주석:
import requests
def fetch_data(url, headers):
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # 수정된 부분
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
return None
return response.json()
url = "https://api.example.com/data"
headers = {"Authorization": "Bearer my_invalid_token"}
data = fetch_data(url, headers)
if data: # 수정된 부분
print(data)
원인분석:
이 에러는 API 요청에서 발생한 HTTP 오류로 인해 발생했습니다. 사용된 토큰이 유효하지 않아 401 Unauthorized 오류가 발생했습니다. 코드에서 requests.exceptions.RequestException 예외를 처리하지 않았기 때문에, 이 에러가 발생하면 프로그램이 중단됩니다.
해결방법은 코드에 예외 처리를 추가하여, 에러 발생 시 이를 적절하게 처리하도록 하는 것입니다. 이를 통해 프로그램이 예기치 않게 중단되는 것을 방지할 수 있습니다.
참고링크:
728x90