Finally, it's best not to return.

Source: Internet
Author: User

public static void Main (string[] args) {int i = 1;int J = 0;try {System.out.println ("Try ...");d ivsion (i, j);} catch (Exception e) {System.out.println ("catch ...");} finally {System.out.println ("finally ...");}} static int divsion (int i, int j) {try {int k = i/j;} catch (Exception e) {System.out.println ("[Divsion] catch ...") ; throw e;} finally {System.out.println ("[Divsion] finally ..."); return 0;}}

Execution results

Try ..... [Divsion] catch ..... [Divsion] finally.........finally ...


Finally, the code in the finally block will execute regardless of whether there is an exception in the try block. return 0; If it is placed in the finally, then after the exception in the try, catch and then throw e; The method aborts execution, then return 0 is not executed, and return 0 is placed in finally, after the exception in the try, Catch then throw E; Method abort executes the statement in the finally block before executing the throw exception, and finally causes the method to return normally. So it causes the exception to not be thrown.

Conclusion:
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.

Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.

Finally, it's best not to return.

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.