Tôi khá mới với python, và tôi muốn chắc chắn rằng tôi đang làm điều này một cách chính xác. Tôi muốn có một lớp ngoại lệ:Tôi có cần câu lệnh trả về sau một ngoại lệ Python không?
class UnknownCommandReceived(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
tôi sẽ nâng cao ngoại lệ ở phần cuối của chức năng này nếu không regexes trận đấu:
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
Câu hỏi của tôi là - nếu ngoại lệ luôn luôn là lớn lên, sau đó tôi không cần một tuyên bố trở lại vào cuối chức năng? Lời xin lỗi của tôi .. đó là một câu hỏi rất cơ bản. Sự hiểu biết của tôi là một ngoại lệ khi một ngoại lệ được nâng lên, việc thực thi sẽ không bao giờ trở lại điểm đó của mã (trừ khi một vòng lặp của nó, hoặc một hàm được gọi lại). Nó sẽ đi thẳng đến bắt và tiếp tục từ đó?
Hiểu biết của bạn là chính xác. –