[OE-core] [PATCH 1/1] bbclass: bb.fatal() clean up
Robert Yang
liezhi.yang at windriver.com
Thu May 9 03:34:10 UTC 2013
On 05/09/2013 10:23 AM, Chris Larson wrote:
> On Wed, May 8, 2013 at 7:14 PM, Robert Yang <liezhi.yang at windriver.com>wrote:
>
>> 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.
>
>
> He didn't say raise sys.exit(1), he said sys.exit(1) is equivalent to raise
> SystemExit(1), which it is.
>
Hi Chris, thanks, if I understand correctly, what you mean is that change the
definition of bb.fatal() to let it can raise the exception "e" (not only change
the "sys.exit(1)" to "raise SystemExit(1)"), something like:
def fatal(e, *args):
logger.critical(''.join(args))
try:
if e:
raise e # if there is e
finally:
# but this one will flush the previous "raise e"
raise SystemExit(1)
it seems that this doesn't work (or do we have other ways to make it work that I
don't know?) or make much differences.
and not all the bb.fatal() has an exception, e.g.:
bb.fatal("No OUTSPECFILE")
we need change all the current bb.fatal()'s usage, is it worth ?
// Robert
More information about the Openembedded-core
mailing list