[OE-core] [PATCH 1/1] bbclass: bb.fatal() clean up
Mike Looijmans
mike.looijmans at topic.nl
Wed May 8 12:03:04 UTC 2013
On 05/08/2013 11:06 AM, Robert Yang wrote:
> The bb.fatal() is defined as:
>
> def fatal(*args):
> logger.critical(''.join(args))
> sys.exit(1)
>
> So anything after bb.fatal() in the same code block doesn't have any
> effect, e.g.:
>
> bb.fatal("%s_%s: %s" % (var, pkg, e))
> raise e
>
> The "raise e" should be removed.
Just some random thoughts that occurred to me when I read this:
The "terminate" effect would be obvious if "fatal" were an exception to
be raised instead of a function to call which does not really return. If
I'm not mistaken, "sys.exit(1)" actually just raises a SystemExit exception.
So instead of:
bb.fatal("something went wrong")
the syntax would become:
raise bb.Fatal("something went wrong")
Having typed this, the next random thought I got was that a thing like
catch Exception, e:
bb.fatal("Error: ", e)
isn't really adding anything useful, it just "translates" the exception,
logs its message, and then throws an obscure system exit exception
instead of the much more useful inner exception.
More information about the Openembedded-core
mailing list