я год назад начал плотно угорать по исключениям (ибо они рулят), я хотел дать вам пищу для размышлений. Разумеется, это относится именно к реализации, а что до назначения - так топор всюду хорош, что по дрова, что ещё по ком )
Вы сами путаете предназначение и реализацию.Завязываем.
Я в ответе указал на те аспекты исключений, которые были упущеныа про всё остальное можете рассказать вы, но не мне - я в общих чертах в курсе.
Теперь надо автору вопроса порекомендовать что-то, у него PHP. Как там? Вам же за себя ловко?
Как я вижу, находить новые применения непредназначенным для этого вещам - ваш конек.
то, есть по вашим измерениям, эксепшены сами по себе тормозят всего в 2.5 раза?Даже как-то неловко за вас - даже код запустить в какой-нибудь песочнице не сподобились.
from time import time
def timer(f):
def wrapper(*args, **kwargs):
t, res = time(), f(*args, **kwargs)
print("{:12s}, sec: {:f}".format(f.__name__, time() - t))
return res
return wrapper
def f(u):
if u == 500:
raise TabError()
f(u + 1)
@timer
def ff(n):
for _ in range(n):
try:
f(0)
except TabError:
pass
def g(u):
if u == 500:
return
g(u + 1)
@timer
def gg(n):
for _ in range(n):
g(0)
N = 1000
ff(N)
gg(N)
Экий ты, право, болван.