안드로이드용으로 빌드하시는 분들은 에러를 report 하는 방법이 바뀐것을 공지해 드렸었습니다. 이 기능은 안드로이드쪽에 먼저 작업이 됐는데요 그 이유는 custom 안드로이드 퍼미션 기능을 implement 하는 부분을 수정하면서 런타임 에러를 처리하는 기능이 개선될 필요가 있었기 때문입니다.
이제 다른 플랫폼에도 이 기능이 지원돼야 겠죠. iOS 와 시뮬레이터 등에도 런타임에러를 캐치하고 처리하는 기능이 지원될 차례입니다. 에러를 trap 해서 런타임 에러 팝업을 보여줄지 안 보여줄 지 하는 기능도 지원되게 됩니다. 이 기능을 통해서 런타임 에러를 fix 하는 것은 아니지만 그 런타임 에러를 감출수는 있을 겁니다.
런타임 에러를 처리하는 예제입니다.
local function myUnhandledErrorListener( event ) local iHandledTheError = true if iHandledTheError then print( "Handling the unhandled error", event.errorMessage ) else print( "Not handling the unhandled error", event.errorMessage ) end return iHandledTheError end Runtime:addEventListener("unhandledError", myUnhandledErrorListener)
이 리스너에 pass 된 이벤트 테이블은 errorMessage와 stackTrace 파라미터를 가지고 있습니다. 이 에러 메세지는 에러의 result 가 되겠죠 그리고 stack trace 는 에러의 마지막 부분이 될 겁니다. 리스너에서 true 가 리턴되면 팝업 alert 메세지가 뜨는 걸 방지하고 앱이 계속 진행하도록 합니다. false가 return 되면 팝업이 보여지고 앱이 멈추게 되겠죠. (이 경우는 unhandledError 리스너가 적용되지 않은 상황에서도 일어나는 현상입니다.)
다음 daily build 에서 여러분이 보게 될 가장 큰 변화 내용은 런타임 에러가 났을 때의 팝업 메세지 입니다. 런타임 에러를 trap 하고 팝업창이 뜨는 것을 막고 앱이 중지하는 것을 막으시려면 위에서 처럼 unhandledError 리스너를 추가하시면 됩니다.
위의 기능은 daily build 1044 이후부터 적용될 겁니다.
'Corona SDK > Corona SDK TIPs' 카테고리의 다른 글
수요일의 FAQ : Runtime Error Listener (2) | 2013.03.19 |
---|---|
loadSoundLibrary : 사운드 파일들을 간편하게 관리하기 (0) | 2013.03.11 |
수요일의 FAQ: 코로나 런타임 에러 관련 (0) | 2013.03.06 |
수요일의 FAQs : 서브 폴더와 서브 파일에 접근하기 (0) | 2013.02.22 |
Corona Tip from Facebook : 스토리보드 scene 을 떠날 때.... (0) | 2013.02.01 |
FAQ: 맥 시뮬레이터 업데이트 내용들 (0) | 2013.01.31 |
간단하게 디버그용 print 구문들 실행되지 않도록 하기 (0) | 2013.01.23 |
FAQ Wednesday : Custom Fonts 사용하기 (0) | 2013.01.18 |
Corona tip: Shuffle it! (0) | 2013.01.10 |
Corona TIP : display.remove()와 object:removeSelf() 의 차이 (0) | 2013.01.10 |