我有一部分Python脚本。将使用shell脚本调用此脚本。
try:
sqlContext.sql("create table {}.`{}` as select * from mytempTable".format(hivedb,table))
except Exception as e:
status = 'fail'
error_message = e
else:
status = 'success'
error_message = 'No error'
print ("{},{},{},{}".format(hivedb,table,status,error_message))
status == 'success'
sys.exit(1)
在上面的代码中,如果我使用status == 'success'
,我会在脚本运行时始终获得success
,即使对于失败的作业也是如此。
如果我一起使用sys.exit(1)
或两者,我一直都会失败。
如果status
为'success'
时脚本执行成功,status
为'fail'
时失败,我该怎么办?
答案 0 :(得分:0)
最简单的答案是删除try / except。如果您只是进行调用,则在异常情况下,您将获得stderr的完整回溯,并且python将以非零退出状态退出。
E.g。
$ python -c "raise Exception('ha');" 1>stdout 2>stderr
$ echo $?
1
$ cat stderr
Traceback (most recent call last):
File "<string>", line 1, in <module>
Exception: ha