创建异常的最佳实践是什么?我刚刚看到了这个,我不知道我是应该感到害怕,还是喜欢它。我在书中读过几次,异常永远不应该包含字符串,因为字符串本身可能会抛出异常。这有什么真实的事实吗?
基本上,根据我对脚本的理解,这样做是因为所有内部Python库都有一个通用的错误消息格式(这是非常需要的),所以我可以理解为什么将错误消息字符串放入是一个好主意。(几乎每个方法都会抛出异常,因为绝对不需要任何无效的东西通过)。
有问题的代码如下:
"""
Base Exception, Error
"""
class Error(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return "[ERROR] %s\n" % str(self.message)
def log(self):
ret = "%s" % str(self.message)
if(hasattr(self, "reason")):
return "".join([ret, "\n==> %s" % str(self.reason)])
return ret
class PCSException(Error):
def __init__(self, message, reason = None):
self.message = message
self.reason = reason
def __str__(self):
ret = "[PCS_ERROR] %s\n" % str(self.message)
if(self.reason != None):
ret += "[REASON] %s\n" % str(self.reason)
return ret
这只是冰山一角,但谁能给我一些洞察,是什么让这是一个可怕的想法?或者是否有更好的异常编码过程/风格。
发布于 2019-01-18 14:38:00
class Error(Exception):
"""Base class for other exceptions"""
pass
class empty_string_error(Error):
"""Raised when the input value is too large"""
pass
while(1):
try:
if("Your Condition"):
raise empty_string_error
else:
print("OUTPUT")
except empty_string_error:
print("APT MESSAGE")
print(" ")
finally:
pint("Mandatory code")
https://stackoverflow.com/questions/839636
复制相似问题