2012-01-26 6 views
0

예외를 UI로 전송해야하는 경우 예외를 처리하는 더 좋은 방법은 무엇입니까? 내가 사용해야하는 것 : 사용자에게 적절한 메시지를 보여 주거나 메소드에서 메소드 또는 메소드 또는 다른 UI로 오류 코드를 반환하는 UI에 대한 여러 메소드를 통해 선택/선택 취소 (이 중 어느 것이 더 낫다)를 던집니까?UI로 예외를 전송하는 가장 좋은 방법은 무엇입니까?

업데이트 :

은 내가 나타나는 곳 곳에서 그들과 함께 무엇을 해야할지하지 않는 예외 (단지 그들에 아마도) 모두 선택/선택 해제를 처리하기 위해 안드로이드의 처리기를 사용하는 것은 좋은 생각합니까 ? 예를

에 대한

...

catch(NUllPointerException){ 
UIExceptionHandler.sendEmptyMessage(...); 
} 

...

onHandleMessage(...){ 
//handle exception here - for example show toast 
} 

?

+0

귀하의 UI에 따라 다릅니다. – Renato

+0

예를 들어 "Connection is absent"와 같은 USER에게 메시지 표시 – drifter

답변

3

저는 개인적으로 사용자 정의 예외를 만들고 UI 레이어까지 던질 것입니다. 그런 식으로 모든 예외를 던지려는 것은 아닙니다. 프로젝트의 하위 레이어에서 다른 모든 예외를 catch 할 수 있지만 UI로 백업해야하는 영역에있을 때는 원래 예외를 catch하고 사용자 정의 예외를 다시 throw합니다.

+0

더 나은 방법은 무엇입니까? Exception 또는 RuntimeException에서 사용자 정의 예외를 확장 하시겠습니까? – drifter

+0

http://weblogs.java.net/blog/bakksjo/archive/2005/09/java_exception.html – drifter

+0

http://stackoverflow.com/questions/4589750/exception-handling-pattern – drifter

-1

이것은 현재 프로젝트에서 수행하고있는 작업입니다. 예외가있는 경우이를 잡아서 의미있는 텍스트 (예 : UserInput이 너무 짧거나 숫자가 허용되지 않음 등)를 저장합니다.이를 ErrorVO라는 배열에 저장합니다. 그런 다음 UI에 오류 메시지를 표시합니다.

+0

UI에 오류가 표시되고 배열에서 적절한 값을 얻도록 사용자에게 알리는 방법은 무엇입니까? – drifter

+0

JSON 개체로 보내거나 현재 응용 프로그램에서 속도를 사용하고 오류 개체를 문자열 목록으로 다시 보내 텍스트를 반복합니다. –

5

Dan W와 마찬가지로 자신 만의 예외를 만들고 UI 레이어에서 잡을 수 있습니다. RuntimeException을 확장하면 메소드 헤더에 예외를 지정하지 않고도 예외를 발생시킬 수 있습니다.

또 다른 중요한 점은 UI 레이어의 EDT입니다. 이벤트 디스패처 스레드 예외를 UI 레이어의 단일 위치에 모두 래핑 할 수 없으므로 UncaughtExceptionHandler를 만들고 여기에서 응용 프로그램에서 트리거하는 모든 UncaughtExceptions를 관리 할 수 ​​있습니다.

거기에서 발생한 오류를 쉽게 기록하고 사용자에게 알릴 수 있으며 발생 된 예외 유형에 따라 다른 메시지를 표시 할 수 있습니다. 그렇게하면 오류가 눈에 띄지 않게됩니다.

이 토론에서는 처리기 구현의 기본에 대해 설명합니다. How can i catch Event Dispatch Thread (EDT) exceptions?

관련 문제