2013-05-18 6 views
10

私はむしろPythonには新しく、これを正しく実行していることを確認したいと思います。私は、例外クラスを持っているしたいと思います:Python例外の後にreturn文が必要ですか?

class UnknownCommandReceived(Exception): 
    def __init__(self, value): 
     self.value = value 

    def __str__(self): 
     return repr(self.value) 

何の正規表現が一致した場合、私は、この関数の最後で例外が発生します:

def cmdType(self): 
    match = re.match(r'(<[ \w]+>),\s*(\d+)?,?\s*(\d+)?', cmd, re.IGNORECASE) 
    if match: 
     cmd_type = 'int_tool' 
     return cmd_type, match 

    match = re.match(r'LCD\(([^\)]*)\)?_?(RED|YELLOW|GREEN|TEAL|BLUE|VIOLET|OFF|ON|SELECT|LEFT|DOWN|RIGHT)?', cmd, re.IGNORECASE) 
    if match: 
     cmd_type = 'lcd' 
     return cmd_type, match 

    match = re.match(r'buffer(_read|_num|_line)(\((\w)\))?', cmd, re.IGNORECASE) 
    if match: 
     cmd_type = 'buffer' 
     return cmd_type, match 

    # ... More regex matches ... 

    raise UnknownCommandReceived("cmdType received an unknown command") 

    # unecessary return? 
    return 'None', None 

は、私の質問はありません - 例外が常にある場合呼び出されると、関数の最後にreturn文は必要ありませんか?私の謝罪..それは非常に基本的な質問です。私の理解は、例外が発生した後に例外が発生することです。実行がコードのその時点に戻ることはありません(ループや関数が再び呼び出されない限り)。それはすぐにキャッチに行くとそこから続行する?

+0

ご了承ください。 –

答えて

13

いいえ。 returnステートメントに到達できません。

また、pyflakesなどの静的解析ツールでは、エラーとして報告されます。

関連する問題