파이썬에서 블록을 동일한 예외 이름을 두 번 사용하려면 try/except
문을 두 번 더 코드에 넣지 않아도됩니다. try/except
블록? (여기 pages.get
의 각 호출이 예외를 발생시킬 수 있음)"except"와 같은 예외 클래스를 매개 변수로 두 번 사용
간단한 예 : try
지금은
try:
page = pages.get(lang=lang)
except Page.DoesNotExist:
if not lang == default_lang:
page = pages.get(lang=default_lang)
else:
raise Page.DoesNotExist
except Page.DoesNotExist:
page = pages[0]
, 내 장고 응용 프로그램에서 I는 다음과 같이 처리 할 (하지만 난 싶지 않아 "추가" 여기에서 차단) :
try:
try:
page = pages.get(lang=lang)
except Page.DoesNotExist:
if not lang == default_lang:
page = pages.get(lang=default_lang)
else:
raise Page.DoesNotExist
except Page.DoesNotExist:
page = pages[0]
위의 처리 코드보다 우수합니다. :)
감사합니다.
왜 이렇게하고 싶습니까? – spinlok
할 수 없습니다. 아마도 당신은 우리가 당신이 왜 그렇게해야한다고 생각하는지 말할 수 있습니다. 그래서 우리는 당신이 그것을 할 필요가없는 이유를 말할 수 있습니다. –
나는 동의합니다, 나는 이것이 좋은 생각이라고 생각하지 않습니다. 즉, 같은 일에 의해 트리거되는 두 가지 코드 경로가 있고 다른 일을한다는 의미입니다. try/catch를 if/else 문으로 생각하십시오. –