Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

catch에 return 문을 포함하거나 Java에서 finally 블록을 사용할 수 있습니까?

<시간/>

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