If you have used python return statement in python try, except and finally, it is may be confused to understand. In this tutorial, we will explain the return value in python try, except and finally.
To understand python return statement, you can refer to this tutorial.
Understand Python Return Statement for Python Beginners – Python Tutorial
However, look at this example.
def getExceptionReturn(): try: print('run try statement') x = 1 / 0 return 1 except Exception as e: print("run except statement") print(e) return 0 finally: print('run finally statement') return 2 x = getExceptionReturn() print(x)
What the return value of getExceptionReturn() function?
1. 1/0 will raise an exception.
2. except statement will be run, it will return 0.
3. finally statement will be run, it will return 2.
So the return value of getExceptionReturn() function is 0 or 2?
The run result is:
run try statement run except statement division by zero run finally statement 2
The return value is 2, which means the return value in except statement is replaced by return value in finally statement.
Look at this example.
def getExceptionReturn(): try: print('run try statement') x = 1 / 1 return 1 except Exception as e: print("run except statement") print(e) return 0 finally: print('run finally statement') return 2 x = getExceptionReturn() print(x)
The return value of getExceptionReturn() funtion is 1 or 2?
The execution result is:
run try statement run finally statement 2
The return value is 2, which means return value in try statement is replaced by return value in finally statement.
However, if we do not use finally statement, the return value is very easy to understand.
If there is not return value in finally statement?
Here is an example.
def getExceptionReturn(): try: print('run try statement') x = 1 / 1 return 1 except Exception as e: print("run except statement") print(e) return 0 finally: print('run finally statement') x = getExceptionReturn() print(x)
In this example, there is not any return value in finally statement, so the return value of getExceptionReturn() should be 1.
The execution result is:
run try statement run finally statement 1