Adalah praktik yang jauh lebih baik untuk menghindari penggunaan sys.exit () dan alih-alih memunculkan / menangani pengecualian agar program dapat selesai dengan bersih. Jika Anda ingin mematikan traceback, cukup gunakan:
sys.trackbacklimit=0
Anda dapat mengatur ini di bagian atas skrip Anda untuk menekan semua keluaran traceback, tetapi saya lebih suka menggunakannya lebih hemat, misalnya "kesalahan yang diketahui" di mana saya ingin hasilnya bersih, misalnya dalam file foo.py:
import sys
from subprocess import *
try:
check_call([ 'uptime', '--help' ])
except CalledProcessError:
sys.tracebacklimit=0
print "Process failed"
raise
print "This message should never follow an error."
Jika CalledProcessError tertangkap, hasilnya akan terlihat seperti ini:
[me@test01 dev]$ ./foo.py
usage: uptime [-V]
-V display version
Process failed
subprocess.CalledProcessError: Command '['uptime', '--help']' returned non-zero exit status 1
Jika ada kesalahan lain yang terjadi, kami masih mendapatkan hasil traceback penuh.