<p>我想为我的类创建一些自定义异常。我试图找出使这些异常类在派生类中可继承的最佳方法。本教程演示如何创建异常类。所以我这样做了:</p>
<p>我创造了一个基类.py公司名称:</p>
<pre><code>class Error(Exception):
"""Base class for exceptions in BaseClass"""
pass
class SomeError(Error):
"""Exection for some error"""
def __init__(self, msg):
self.msg = msg
class OtherError(Error):
"""Exection for some error"""
def __init__(self, msg):
self.msg = msg
class BaseClass():
"""Base test class for testing exceptions"""
def dosomething(self):
raise SomeError, "Got an error doing something"
</code></pre>
<p>还有一个derivedclass.py公司名称:</p>
^{pr2}$
<p>然后使用DerivedClass的测试:</p>
<pre><code>#!/usr/bin/python
from derivedclass import DerivedClass,SomeError,OtherError
"""Test from within module"""
x = DerivedClass()
try:
x.dosomething()
except SomeError:
print "I got some error ok"
try:
x.doother()
except OtherError:
print "I got other error ok"
</code></pre>
<p>如您所见,我将异常类从基类导入到派生类,然后再次从派生类导入到程序中。在</p>
<p>这似乎可以工作,但不是很优雅,我担心必须确保并在派生类模块中为所有异常类执行导入。在创建新的派生类时,似乎很容易忘记一个。然后,如果派生类的用户试图使用它,就会得到一个错误。在</p>
<p>有更好的方法吗?在</p>
<p>谢谢!在</p>
<p>-标记</p>