簡體   English   中英

如何在Python中處理用戶定義的異常?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM