[Unity] 왜 유니티는 예외가 발생했을 때 종료되지 않을까?

Date:     Updated:

카테고리:

태그:

왜 유니티는 예외를 처리 안해줬을 때 애플리케이션이 종료되지 않는가? 라는 의문점에서 시작되어 공부한 글입니다.
참고 글 : https://answers.unity.com/questions/485595/uncaught-exception-doesnt-kill-the-application.html

간단 요약

  • 유니티에서 발생하는 예외는 관리되는 예외이기 때문에 애플리케이션을 종료시키지 않는다.

왜 유니티는 예외가 발생했을 때 종료되지 않을까?

  • Unity 애플리케이션은 CLI 애플리케이션이 아니며, 관리되는 CLI환경에서 스크립트를 실행하는 네이티브 코드 애플리케이션입니다.
  • Unity가 제공하는 모든 콜백은 네이티브 C++ 코드로 호출됩니다.
  • 따라서 관리되는 호출 스택의 진입점에서 시작됩니다.
  • catch되지 않는 예외는 끝에 도달할 때까지 스택 아래로 이동합니다.
  • 이 시점에서 Unity는 콜백에서 예외가 포착되었음을 표시합니다.
  • 예외는 응용프로그램을 종료하는데 반드시 필요한 것은 아니다.
  • Unity의 경우 콜백 내부의 예외는 Unity의 사용자 스크립트 중 하나에 결함이 있는 것 같다는 것을 알려줍니다.
  • 스크립트는 Unity 애플리케이션의 “게스트” 일 뿐이므로 관리되는 예외는 애플리케이션을 종료할 수 없음.
  • c#이나 c++에서 예외가 발생했을 경우 관리되는 예외가 아니기 때문에 애플리케이션이 종료된다.


💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Unity 카테고리 내 다른 글 보러가기

댓글 남기기