On 05/08/2013 08:03 PM, Mike Looijmans wrote:
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:


Hi Mike, thanks for your comments, but the "raise sys.exit(1)" doesn't raise
anything, e.g.:

import sys

def fatal():
        sys.exit(1)

try:
        raise fatal()
except Exception as e:
        raise e

I think that the "raise fatal()" equals to "fatal()" here.

// Robert

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.



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to