Java Foundation--try Catch final

Source: Internet
Author: User
Tags finally block try catch

1, regardless of the occurrence of wood anomalies, finally block code will be executed;


2, when there is return in the try and catch, finally will still execute;


3, finally is executed after the return of the expression after the operation (at this time does not return the value of the operation, but first to save the value to return, the pipe finally in the code, the return value will not change, still is the value of the previous saved), So the function return value is determined before the finally execution;

4, finally, it is best not to include return, or the program will exit early, the return value is not a try or catch in the saved return value.

Example:
Case 1:try{} catch () {}finally{} return;
Obviously the program executes sequentially.


Case 2:try{return;} catch () {} finally{} return;
The program executes code in the try block before return ( including expression operations in the return statement );
Then execute the finally block and finally execute the return in try;
The statement after the finally block return, because the program has already been return in the try and is no longer executed.


Case 3:try{} catch () {return;} finally{} return;
The program executes the try first, and if an exception is encountered to execute a catch block,
There is an exception: executes the code in the catch before return, including the expression operation in the return statement,

Then execute all the code in the finally statement,
Finally executes the return in the catch block. Finally, the code at 4 is no longer executed.
No exception: After executing the try and finally return.


Case 4:try{return;} catch () {} Finally{return;}
The program executes code in the try block before return ( including expression operations in the return statement );
Then execute the finally block, because there is a return in the finally block and exit early.


Case 5:try{} catch () {return;} Finally{return;}
The program executes the code in the Catch block before return ( including the expression operation in the return statement );
Then execute the finally block, because there is a return in the finally block and exit early.


case 6:try{return;} catch () {return;} Finally{return;}
Before the program executes return in the try block (include expression operations in the return statementCode
Exception: Executes the code in the Catch block before return, including the expression operation in the return statement;
Then the finally block is executed because there is a return in the finally block and exits early.
No exception: Then the finally block is executed, because there is a return in the finally block and exits early.

Final Conclusion: Any execution of a return statement in a try or catch is preceded by a finally statement, if finally exists.
If there is a return statement in Finally, then the program will return, so the return in the finally is bound to return,
The compiler implements the return in finally as a warning.

Java Foundation--try Catch final

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.