반응형
특정에서 특정 HTTP 오류 잡기
가족 전체가 아닌 특정 http 오류를 있고 싶습니다. 내가하려는 것은-
import urllib2
try:
urllib2.urlopen("some url")
except urllib2.HTTPError:
<whatever>
하지만 내가 끝내는 것은 모든 종류의 http 오류를 처리하는 것이지만 지정된 웹 페이지가 존재하지 않는 경우에만 처리하고 싶습니다! 아마도 그것은 HTTP 오류 404 ..이지만 오류 404 만습니다. 시스템이 다른 이벤트에 대한 기본 처리기를 실행하도록 지정하는 방법을 모르겠습니다.
그냥 잡아서 urllib2.HTTPError
처리하고 오류 404가 raise
아닌 경우 예외를 다시 발생시키는 데 사용하십시오.
Python 안내를 참조하십시오 .
따라서 다음을 수행 할 수 있습니다.
import urllib2
try:
urllib2.urlopen("some url")
except urllib2.HTTPError as err:
if err.code == 404:
<whatever>
else:
raise
Python 3.x의 경우
import urllib.request
try:
urllib.request.urlretrieve(url, fullpath)
except urllib.error.HTTPError as err:
print(err.code)
Tims의 대답은 오해의 소지가있는 것입니다. 특히 urllib2가 예상 코드를 반환하지 않을 때. 예를 들어이 오류는 치명적입니다 (믿거 나 말거나 -URL을 다운로드 할 때 드물지 언어).
AttributeError : 'URLError'개체에 'code'속성이 없습니다.
빠르지 만 최선의 해결책은 아닐 수도 있습니다 중첩 된 시도 / 제외 블록을 사용하는 코드입니다.
import urllib2
try:
urllib2.urlopen("some url")
except urllib2.HTTPError, err:
try:
if err.code == 404:
# Handle the error
else:
raise
except:
...
중첩 된 try / block 주제에 대한 추가 정보 제외하고 중첩 된 try / except 블록은 좋은 프로그래밍 관행입니까?
참고 URL : https://stackoverflow.com/questions/3193060/catch-specific-http-error-in-python
반응형
'ProgramingTip' 카테고리의 다른 글
C #의 다중 시작 화면? (0) | 2020.12.03 |
---|---|
어떤 경우에 튜플을 사전 키로 사용합니까? (0) | 2020.12.03 |
이메일 주소를 자동 감지 할 수 없습니다. (0) | 2020.12.03 |
Java 메서드가 모든 유형의 일반 목록을 반환하는 방법은 무엇입니까? (0) | 2020.12.03 |
Sublime Text 3에서 Solarized (Light) 테마를 어떻게 편집합니까? (0) | 2020.12.03 |