2010-06-01 2 views
1

웹 서비스 (서버) 세트와이를 사용하는 앱 (클라이언트)이 있습니다. 이러한 종류의 관계에서 서버는 항상 예외를 throw해야합니다 (즉, throw 블록에서 catch 예외를 다시 throw). 그러면 클라이언트가이를 catch합니다. 서버가 처리 할 수있는 예외는 처리 할 것이고 다시 throw하지 않을 것이지만, 그 외 모든 것은 더 많은 작업을 위해 호출 계층에 던져 질 것입니다 (소비하는 응용 프로그램은 msg 상자 등을 올릴 수 있습니다).클라이언트 - 서버 관계에서 서버가 클라이언트에 예외를 항상 재현해야합니까?

예외 처리를위한 좋은 예입니다. 디렉토리에 특수 권한이 ​​필요하므로 파일을 쓸 수 없습니다. 따라서 예외가 발생하면 파일은 관리자 권한이 필요없는 어딘가에 기록됩니다.

감사

특정 오류가 서버의 구성 문제 같은 소리 때문에 클라이언트가이 정보를 제공하지 않아야 행동의 수단을 가지고 있지 않는

답변

0

두 가지 이상의 오류 유형이 있습니다.

  • 클라이언트가 정정하고 재 시도 할 수있는 오류의 경우, 정정 할 대상에 대한 지시 사항을 제공하십시오.
  • 다른 오류의 경우 무단 조치와 같이 아무런 차이가없는 경우 사용자에게 조치를 수행 할 수없는 이유와 문제를 변경할 수있는 조치가 있는지 사용자에게 알려야합니다.
  • 제안한대로 클라이언트가 레코드 업데이트 요청을하고 서버 제어권 밖에서 서버가 복구 될 수 있으면 클라이언트에 알리지 않습니다. 알고 싶으면 서버에서 사용자에게 알리도록하십시오.
  • 서버에서 오류가 발생했지만 서버가 복구 할 수없는 경우 클라이언트에게 오류를 알리고 사용자에게 알리거나 나중에 다시 시도해야합니다. 다시 시스템에서 알려야합니다.
0

.

일반적으로 일반적인 오류 메시지 ("시스템 오류, 시스템 관리자에게 문의하십시오")에서 이러한 종류의 오류를 확인하고 나중에 검사하기 위해 서버에 오류를 기록합니다.

+0

클라이언트는 클라이언트가 경로를 매개 변수로 제공하는 경우 작업 방법이 있습니다. 그렇지 않으면 전적으로 동의합니다. 최선의 방법은 가장 신뢰할 수있는 장소 (격리 된 저장소?)로 작성하는 것입니다. 그래서 여러분이 꽤 많이 자리 잡고있는 것 같습니다. – dotnetdev

+0

클라이언트가 경로를 제공하는 경우에 동의합니다. –

관련 문제