我发现自己经常想要构建我的异常类,如下所示:
# legends.py
class Error(Exception): pass
class Rick(object):
class Error(Error): pass
class GaveYouUp(Error): pass
class LetYouDown(Error): pass
class Michael(object):
class Error(Error): pass
class BlamedItOnTheSunshine(Error): pass
class BlamedItOnTheMoonlight(Error): pass
Run Code Online (Sandbox Code Playgroud)
我只看到了Django(DoesNotExist)中使用的这种模式,它非常有意义.有什么我想念的,为什么大多数人似乎都喜欢顶级的例外?
编辑 我会将这些类用于多种粒度,例如:
import legends
try:
do_stuff()
except legends.Michael.Error:
blame_it_on_the_boogie()
except legends.Rick.GaveYouUp:
let_you_down()
except legends.Error:
pass
except Exception as e:
raise Hell()
Run Code Online (Sandbox Code Playgroud)