Multiple choice technology

Given: 11. public static void parse(String str) { 12. try { 13. float f = Float.parseFloat(str); 14. } catch (NumberFormatException nfe) { 15. f = 0; 16. } finally { 17. System.out.println(f); 18. } 19. } 20. public static void main(String[] args) { 21. parse("invalid"); 22. } What is the result?

  1. 0.0

  2. Compilation fails.

  3. A ParseException is thrown by the parse method at runtime.

  4. A NumberFormatException is thrown by the parse method at runtime.

Reveal answer Fill a bubble to check yourself
B Correct answer
Explanation

Variable f is declared inside the try block (line 13), so it's not in scope when accessed in the finally block (line 17). Variables in try-catch-finally must be declared outside the try block to be accessible in finally.