모바일 앱을 위한 고급 오류 처리 기능
MobileTogether 2.1은 모바일 앱을 위한 새로운 "Try/Throw" 및 "Catch" 오류 처리 기능을 제공합니다. 이를 통해 개발자는 사용자 경험을 향상시키는 정교한 오류 처리 루틴을 구축할 수 있습니다. 예를 들어, 앱이 외부 웹 서비스에 연결을 시도했지만 서버가 응답하지 않는 경우, 오류 처리 기능을 통해 오류를 우아하게 복구할 수 있습니다.
MobileTogether의 오류 처리 기능은 모바일 앱 개발 시 모든 플랫폼에서 동일하게 작동하며, 개발자는 각 모바일 운영체제의 요구 사항에 맞춰 오류 처리 방식을 개별적으로 조정할 필요가 없으므로 개발 시간을 절약할 수 있습니다.

이전 게시글인 "모바일 앱을 위한 데이터 소스로서의 REST 서비스"에서는, USGS에서 호스팅하는 REST 서비스를 호출하여 특정 지리 좌표에 대한 정확한 고도 값을 얻는 데 사용되는 데모 앱을 소개했습니다.
REST 서비스 실행 과정에서 발생할 수 있는 두 가지 다른 유형의 오류를 처리하기 위해 Try/Catch 구문을 사용할 수 있습니다
- USGS 서버와의 연결에 문제가 발생할 수 있습니다
- 제공된 좌표에 대한 고도 정보가 없을 경우, USGS(미국 지질조사국)에서 -1000000과 같은 고도 값을 반환할 수 있습니다. 이는 해당 좌표에 대한 고도 데이터가 없음을 의미합니다
다음과 같이, 전체 REST 서비스 호출과 데이터 조작을 위한 후속 작업을 Try 블록 안에 넣을 수 있습니다

웹 서비스 연결에 실패하면, "Try" 액션 내의 모든 후속 작업이 중단됩니다. 미국 지질조사국(USGS)으로부터 데이터를 받지 못하는 경우, 위에 강조 표시된 "노드 업데이트" 작업을 시도하는 것은 의미가 없습니다. 이 예에서는 하나의 작업만 중단되지만, "Try" 액션 내에 여러 작업, 작업 그룹, 또는 다른 작업 그룹을 호출하는 작업 그룹을 포함할 수 있습니다.
마찬가지로, "Catch" 액션 또한 오류가 발생했을 때만 실행되는 여러 작업을 수행할 수 있습니다. 위의 스크린샷에서 "Catch"는 연결 실패를 알리는 메시지 상자를 표시하고, USGS가 범위를 벗어난 오류 발생 시 제공하는 동일한 고도 값을 사용하여 "노드 업데이트" 작업을 수행합니다. 물론, "Try" 블록과 마찬가지로, "Catch" 액션 내부에 여러 개의 액션, 액션 그룹, 또는 다른 액션 그룹을 호출하는 액션 그룹을 배치할 수 있습니다.
모바일 앱에서 오류 처리 기능을 포함한 더욱 복잡한 흐름 제어 방법
예외 처리(try/catch/throw)의 진정한 효용성은 모바일 앱이 더 복잡한 프로그램 로직을 필요로 할 때부터 빛을 발하기 시작합니다.
특정 작업 그룹 내에 데이터베이스 명령어 또는 웹 서비스 호출과 같이 순차적으로 실행되어야 하는 일련의 작업이 포함되어 있고, 각 작업이 이전 작업의 성공 여부에 의존하는 경우를 생각해 봅시다. 이 경우, 각 단계를 if-else 문으로 확인하는 것은 매우 복잡해집니다. 대신, 데이터베이스 작업에서 오류가 발생하면 예외를 발생시키도록 정의하고, 오류가 발생했을 때 오류 메시지를 표시하는 단일 catch 블록을 사용하여 코드를 깔끔하게 구성할 수 있습니다.
이 스크린샷은 미국 증권거래위원회(SEC)의 EDGAR 데이터베이스에 등록된 XBRL 형식의 공시 자료에서 자동으로 추출된 미국 상장 기업의 주요 재무 보고서를 탐색하고 분석할 수 있는 모바일 애플리케이션에서 try/catch 구문을 보여줍니다

만약 다섯 가지 데이터베이스 쿼리 중 하나라도 실패하면, 오류가 발생하고, "Try" 블록 내의 나머지 작업들은 건너뛰어집니다. 또한, 오류 메시지를 담고 있는 변수는 어떤 쿼리가 실패했는지 알려줍니다.
중첩된 try-catch 예외 처리
심지어 하나의 액션 그룹에서 try/catch 오류 처리기를 정의하고, 오류가 발생하는 코드를 메인 액션에서 호출되는 별도의 서브 액션 그룹 내에 배치할 수 있습니다. 실제로, 이러한 구조는 여러 단계로 중첩될 수 있으며, 오류는 여러 번 중첩된 액션 내의 특정 지점에서 발생할 수도 있습니다.
그 시점에서, 제어는 오류 처리기의 외부 부분으로 직접 반환되며, 여기서 오류가 처리됩니다. 이는 다른 프로그래밍 언어에서 try/catch/throw 구문이 작동하는 방식과 정확히 동일합니다.
모바일 앱을 위한 오류 처리 기능(try/catch/throw)을 제공하는 MobileTogether Designer는 무료입니다 지금 바로 다운로드 받으세요!