예, catch 및 finally 블록에서 메서드의 return 문을 작성할 수 있습니다.
- 메소드에 반환 유형이 있고 조건에 따라 메서드의 어느 부분에서나 일부 값을 반환할 수 있는 상황이 있습니다.
- 캐치 블록에서 값을 반환하고 메서드 끝에서 값을 반환할 수 있으면 코드가 성공적으로 실행됩니다.
- 캐치 블록에서 값을 반환하고 값을 반환한 후 메서드 끝에 명령문을 작성할 수 있으면 코드가 실행되지 않으므로 Java가 도달할 수 없는 코드를 지원하지 않는다는 것을 알기 때문에 도달할 수 없는 코드가 됩니다.리>
- 최종 블록에서 값을 반환하고 메서드 끝에 반환 값을 유지할 필요가 없는 경우
예시 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()); } }
출력
1
예시 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()); } }
출력
30