所以,我有一个带有类和记录器的python程序。这是代码:
import logging
path2log = "logs/1.pylog"
LOG_FORMAT = "%(levelname)s - %(name)s (%(asctime)s) : %(message)s"
#existing log levels are:
#Debug
#Info
#Warning
#Error
#Critical
logging.basicConfig(filename = path2log,
level = logging.DEBUG,
format = LOG_FORMAT)
logger = logging.getLogger("1.py.logger 'CONSOLE'")
class Emperor():
try:
def __init__(self, name, famname, level):
try:
self.name = name
self.famname = famname
self.level = level
try:
logger.info("Emperor created with name:")
logger.info(self.name)
logger.info("family name:")
logger.info(self.famname)
logger.info("and level:")
logger.info(self.level)
except TypeError:
logger.error("Missing perameter creating object in emperor class")
except TypeError:
logger.error("Missing perameter creating object in emperor class.")
except TypeError:
logger.error("Missing perameter creating object in emperor class.")
但是def init 区域中的所有例外都没有做任何事情。运行程序时我仍然收到错误。我该如何解决?
答案 0 :(得分:0)
您尝试捕获异常的问题与误解生成异常的位置有关。当您使用错误的参数调用函数时,您会从调用中收到错误,而不是来自函数内部。
函数定义中或周围的try
/ except
代码无法捕获该异常,因为函数的代码无法开始运行(和定义之前发生了没有错误,因此try
语句周围的except
/ def
无法提供帮助。如果呼叫本身失败,只有呼叫周围的代码可以做某事。