[英]How do I handle user defined exceptions in Python?
如果我定義了一個Error模塊,其中包含我的應用程序定義的異常,例如:
class Error(Exception):
pass
class NoSchemaVersion(Error):
def __init__(self):
self.code = 1
self.msg = "No schema version specified"
pass
class NoMsgType(Error):
def __init__(self):
self.code = 2
self.msg = "No message type specified"
pass
引發特殊異常時,我將如何處理。 我嘗試了類似的東西:
import Error
errors = Error.Error()
try:
<do some stuff>
except errors.NoMsgType:
<stuff>
但我得到消息:
AttributeError: 'Error' object has no attribute 'NoMsgType'
我究竟做錯了什么?
Error.Error()
(存儲在error
)構造Error
類的新值,但是NoMsgType
是一個單獨的類,實際上不是Error
一部分,因此error.NoMsgType
不存在。 要捕獲NoMsgType
,您只需要編寫except Error.NoMsgType:
。
我猜你需要做這樣的事情:
try:
somecode
except Error.NoMsgType:
morecode
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.