Java finally block vs return: What you need to know

Hi Friends 👋 Sharing a small but tricky Java concept that often confuses developers in real projects 😅 finally block vs return — who actually wins? public class Test { public static void main(String[] args) { System.out.println(getValue()); } static int getValue() { try { return 10; } finally { return 20; } } } 👉 What would you expect? Most people say: 10 👉 But the actual output is: 20 😳 --- Why does this happen? - The try block tries to return 10 - But before the method exits, the finally block always runs - If finally also has a return, it overrides the previous return 👉 So the final result becomes 20 --- Common mistakes: - Assuming the try return is final - Writing return inside finally for cleanup or logging --- Real-world impact: - Expected vs actual result mismatch - Hard-to-debug issues - Confusing behavior in production --- Best Practice: - Never use return inside a finally block ❌ - Use finally only for cleanup (like closing resources) --- Final Thought: In Java, small concepts can create big bugs. Understanding execution flow is what makes a real developer 🚀 Did you know this before? 🤔 #Java #BackendDevelopment #CodingMistakes #Learning #Developers

To view or add a comment, sign in

Explore content categories