除了在我的 python 3.6 程序中不起作用。为什么?

Except isnt working in my python 3.6 program. Why?

所以,我有一个带有 class 和记录器的 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 区域中的所有例外都不做任何事情。当 运行 程序时,我仍然得到错误。我该如何解决?

编辑:Here is the error:

您在尝试捕获异常时遇到的问题与对异常生成位置的误解有关。当您使用错误的参数调用函数时,您会收到一个错误 来自调用 ,而不是来自函数内部。

没有 try/except 函数定义中或周围的代码将能够捕获该异常,因为函数的代码永远不会启动 运行(和定义较早发生且没有错误,因此 def 语句周围的 try/except 无济于事)。如果调用本身失败,只有调用周围的代码可以做一些事情。