前任开发使用了大量的非定向 try except,不指定异常类型甚至互相调用,一个 1000 行的函数,最外层套俩 try ,入参不校验,出参不格式化。
举一个真实的应用场景
使用 orm 查询一个值是否存在:
正常人思维:
if a.models.objects.filter(pk=1).exists():
xxxx
else:
xxxx
if:
xxxx
elxs:
xxxx
他的做法
try:
a.models.objects.get().pk
xxxx
except:
xxxxx
try:
xxxx
except:
xxxx