在Python异常后我需要一个return语句吗?

nck*_*ner 10 python exception

我对python很新,我想确保我正确地做到这一点.我想要一个异常类:

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

    def __str__(self):
        return repr(self.value)
Run Code Online (Sandbox Code Playgroud)

如果没有正则表达式匹配,我将在此函数结束时引发异常:

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
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 如果总是引发异常,那么我不需要在函数末尾使用return语句吗?道歉......这是一个非常基本的问题.我的理解是异常一旦引发异常,执行将永远不会返回到代码的那一点(除非它是一个循环,或者是一个再次调用的函数).它将直接进入捕获并从那里继续?

shx*_*hx2 15

不,你没有.该return声明是不可达.

此外,静态分析工具,例如pyflakes将报告为错误.