내 코드를 같이 잡은 할 수 없습니다파이썬 기능 예외가
def retry(func, *args):
try:
func(*args)
except:
print ""
내가 매개 변수로 함수를 전달하는 기능을 쓰고 싶어하지만, retry
기능, 그것은 항상 함수에서 예외를 잡을 수없는 .에
내 코드를 같이 잡은 할 수 없습니다파이썬 기능 예외가
def retry(func, *args):
try:
func(*args)
except:
print ""
내가 매개 변수로 함수를 전달하는 기능을 쓰고 싶어하지만, retry
기능, 그것은 항상 함수에서 예외를 잡을 수없는 .에
전달 왜 그냥 같이 쓰지 않는다 :
try:
func(*args)
except:
print ""
나는 그것이 당신의 예외를 모두 잡을 수 있습니다 확신합니다.
def retry(func, *args):
try: func(*args)
except SyntaxError: print ""
빈 문자열을 인쇄하는 경우 except 절이 입력되었는지 어떻게 알 수 있습니까? 이것을 시도하십시오 :
def exception_raising_function(a, b, c):
print "exception_raising_function(): got args a = {!r}, b = {!r}, c = {!r}".format(a, b, c)
return 1/0 # raises ZeroDivisionError
def retry(func, *args):
try:
return func(*args)
except Exception as exc:
print "retry(): got exception %s" % exc
>>> retry(exception_raising_function, 1, 2, 'three')
exception_raising_function(): got args a = 1, b = 2, c = 'three'
retry(): got exception integer division or modulo by zero
이렇게 작동하고 우리는 그것을 증명할 출력이 있기 때문에 작동한다는 것을 알고 있습니다.
"재시도"예외가있는 경우 함수 호출을 다시 시도하는 재시도 함수를 구현하려는 것 같습니다. 장식자를 사용하면 이렇게 할 수 있습니다. http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/에서 논의 된 내용이 도움이 될 수 있습니다.
정확히 무엇을하려고합니까? 여기에 당신의 유스 케이스는 무엇입니까? –