Có, chúng ta có thể viết câu lệnh trả về của phương thức trong khối lệnh catch và cuối cùng.
- Có một tình huống trong đó một phương thức sẽ có kiểu trả về và chúng tôi có thể trả về một số giá trị ở bất kỳ phần nào của phương thức dựa trên các điều kiện.
- Nếu chúng tôi trả về một giá trị trong khối catch và chúng tôi có thể trả về một giá trị ở cuối phương thức, thì mã sẽ thực thi thành công.
- Nếu chúng ta trả về một giá trị trong khối catch và chúng ta có thể viết một câu lệnh ở cuối phương thức sau khi trả về một giá trị, thì mã sẽ không thực thi vì vậy nó trở thành mã không thể truy cập được vì chúng ta biết Java không hỗ trợ mã không thể truy cập. / li>
- Nếu chúng tôi trả về một giá trị trong khối cuối cùng và không cần giữ giá trị trả về ở cuối phương thức.
Ví dụ 1
public class CatchReturn { int calc() { try { int x=12/0; } catch (Exception e) { return 1; } return 10; } public static void main(String[] args) { CatchReturn cr = new CatchReturn(); System.out.println(cr.calc()); } }
Đầu ra
1
Ví dụ 2
public class FinallyReturn { int calc() { try { return 10; } catch(Exception e) { return 20; } finally { return 30; } } public static void main(String[] args) { FinallyReturn fr = new FinallyReturn(); System.out.println(fr.calc()); } }
Đầu ra
30