[Tutor] Error Handling in python
Wolfgang Maier
wolfgang.maier at biologie.uni-freiburg.de
Thu Jul 24 14:01:40 CEST 2014
On 24.07.2014 13:35, jitendra gupta wrote:
> Hi All
>
> My shell script is not throwing any error when I am having some error
> in Python code.
>
> ~~~~~~~~ test.py ~~~~~~
> def main():
> print "Test"
> #some case error need to be thrown
> raise Exception("Here is error")
>
> if __name__ == "__main__"
> main()
> ~~~~~~
> ~~~~~~~~ second.py ~~~~~~
> def main():
> print "Second function is called"
>
>
> if __name__ == "__main__"
> main()
> ~~~~~~
>
> ~~~~~ shellTest.sh ~~~~~~~
> python test.py
> python second.py
> ~~~~~~~~~~~~~~~~~~~~~~~
>
> In this case, I dont want to run my second.py
> Even I am throwing error from my test.py, but still second.py is getting
> executed, which i dont want,
>
Your shell script calls runs the two Python scripts separately, that is,
it first starts a Python interpreter telling it to run test.py .
When that is done (with whatever outcome !), it starts the interpreter a
second time telling it to run second.py now.
The exception stops the execution of test.py, of course, and causes the
interpreter to return, but your shell script is responsible for checking
the exit status of the first script if it wants to run the second call
only conditionally.
Try something like this (assuming bash):
python test.py
if [ $? = 0 ]; then
python second.py
fi
as your shell script.
By the way, both Python scripts you posted contain a syntax error, but I
leave spotting it up to you.
Best,
Wolfgang
More information about the Tutor
mailing list