TypeError not caught by except statement

tec technic.tec at gmail.com
Mon Jan 25 04:56:56 EST 2010


On 2010-1-25 16:35, siddu wrote:
>
> Hi,
>
> except not able to caught the TypeError exception occured in the below
> code
>
>          log.info("refer",ret) in the try block
>
> throws a TypeError which is not caught .
> Also sometimes process is getting hanged.
>
> ------------------------------------------------------------------------------------------------------------------------------------------------
> import logging
> log = logging.getLogger()
> fileName = strftime("%d-%b-%Y-", gmtime()) + str(int(time.time())) + "-
> Log.log"
> log = logging.getLogger()
> log.setLevel(logging.NOTSET)
> fh = logging.FileHandler(logFile)
> logFileLevel = logging.DEBUG
> fh.setLevel(logFileLevel)
> format_string = '%(process)d %(thread)d %(asctime)-15s %(levelname)-5s
> at %(filename)-15s in %(funcName)-10s at line %(lineno)-3d "%(message)
> s"'
> fh.setFormatter(logging.Formatter(format_string))
> log.addHandler(fh)
>
> try:
>      log.info("start")
>      log.info("refer",ret)
        ~~~~~~~~~~~~~~~~~~~~~~~
Seems this line causes the exception, and it is handled inside 
log.info(), which prints those traceback info.
Usually log.info(msg, args) raises the same exception as print(msg%args).


>      log.info("end")
> except TypeError:
>      log.exception("Exception raised")
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
> OUTPUT message:
>
> Traceback (most recent call last):
>    File "C:\Python26\lib\logging\__init__.py", line 768, in emit
>      msg = self.format(record)
>    File "C:\Python26\lib\logging\__init__.py", line 648, in format
>      return fmt.format(record)
>    File "C:\Python26\lib\logging\__init__.py", line 436, in format
>      record.message = record.getMessage()
>    File "C:\Python26\lib\logging\__init__.py", line 306, in getMessage
>      msg = msg % self.args
> TypeError: not all arguments converted during string formatting




More information about the Python-list mailing list