除了在我的 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
无济于事)。如果调用本身失败,只有调用周围的代码可以做一些事情。
所以,我有一个带有 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
无济于事)。如果调用本身失败,只有调用周围的代码可以做一些事情。