14. What will happen if you call System.exit on try or catch block ?

toutbon·2024년 3월 6일
0

질문의 목적

  • try/ catch 문에서 finally 블럭과 System.exit() return 의 동작차이

try, catch and finally

  • finally 블록은 에러 유무와 상관 없이 항상 실행된다.
  • 그래서 데이터 베이스와 연결을 닫거나, 스트림을 닫는 로직을 넣는다

System.exit() on try, catch

  • 소프트웨어적으로 프로세스의 동작을 완전히 멈추게 함(하드웨어로 굳이 비교하면 전원선을 뽑는 것 과 같다)
  • try 나 catch 문 내에 system.exit() 을 쓰면 finally 블럭이 실행되지 않는다.

return statement on try, catch

  • return 은 블록은 빠져나가고, 그 다음 블록이 실행된다.
  • 에러가 발생해 catch에 걸려서 return 을 써도 해당 블럭을 빠져나온 후, finally 블럭이 실행된다.

Keyword

  • finally block is executed regardless of error condition (에러 컨디션과 상관 없음)
  • will not execute when it meets 'System.exit()'
  • will execute when it meets 'return'
profile
뚜봉

0개의 댓글