sys.exit(1) vs raise SystemExit vs raise

Ganesh Pal ganesh1pal at gmail.com
Tue Apr 12 10:12:39 EDT 2016


>>> No; raise SystemExit is equivalent to sys.exit(0); you would need raise
> SystemExit(1) to return 1.
>
Thanks will replace SystemExit with SystemExit(1) .
> Why do you want to do this, though? What do you think you gain from it?
>
 Iam trying to have a single exit point for many functions: example
 create_logdir() , create_dataset() and unittest.main() will bubble out an
exception using raise
I would want to terminate the program when this happens .
Do you see any problem if *raise *SystemExit(1) is used in the except block ?
 *def *main():
 *try*:
 create_logdir()
 create_dataset()
 unittest.main()
 *except *Exception *as *e:
 logging.exception(e)
 *raise *SystemExit(1)
I see the below error only on pdb so thinking whats wrong in the above code
?
“*Exception AttributeError: "'NoneType' object has no attribute 'path'" in
<function _remove at 0x8017466e0> ignored “ *
(Pdb) n
SystemExit: SystemExit()
> /var/crash/local_qa/bin/corrupt_test.py(253)<module>()

-> main()
(Pdb) n
--Return--
> /var/crash/local_qa/bin/corrupt_test.py(253)<module>()->None

-> main()
(Pdb) n
Exception AttributeError: "'NoneType' object has no attribute 'path'" in
<function _remove at 0x8017466e0> ignored


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /