size < 0
이 감지되는 시점에 size < 0
을 처리 할 수 있는지 여부에 따라 달라집니다. 그런 다음, 바로 print
를 인쇄하여 처리 할 수있는 경우
, 그렇지 않으면,이 같이 더 호출 스택까지 뭔가 해당 조건의 처리를 위임, 예외를 발생 다음에
def divide_three_by(val):
if val == 0:
raise ValueError("Can't divide by 0")
return 3/val
try:
divide_three_by(some_value_from_user)
except ValueError:
print "You gave stupid input"
을 ((예 : 매우 고안된) 예를 들어, divide_three_by
함수는 0을 전달할 때 수행 할 작업을 알지 못합니다. 메시지를 인쇄하려는 경우가 있습니다 (예 : val
이 사용자 입력에서 왔을 때). 가끔은 무시할 수도 있습니다. , 기본값을 지정하십시오. 함수는 무엇을 해야할지 모르기 때문에 호출 스택 위로 호출 스택을 처리하는 책임을 건네야합니다. (그리고 거기에서 처리 할 수없는 경우 처리 할 때까지 호출 스택을 계속 전달할 것입니다. , 또는 최상위 레벨에 도달 할 때까지, 프로그램이 종료됩니다).
파이썬의 예외 처리에 대한 자세한 내용은 파이썬 설명서의 Errors and Exceptions tutorial을 참조하십시오.
이 코드를 사용하면 어떤 차이가 있습니까? –