예, 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