사용자에게 오류에 대한 정보가 얼마나 표시되어야합니까?


38

응용 프로그램은 항상 오류를 발생시킬 수 있습니다. 이러한 오류가 발생하면 응용 프로그램에 요청한 작업이 성공하지 못했기 때문에 사용자에게 알려야합니다.

그러나 사용자에게 얼마나 많은 정보를 제공해야합니까? 대부분의 사람들이 스택 추적을 표시하지 않는 데 동의한다고 생각합니다 ( 스택 추적이 사용자에게 제시된 오류 메시지에 있어야합니까? ), 나머지 오류 내용 또는 표시 할 내용에 대한 질문을 찾을 수 없습니다 사용자.

예를 들어, 예외를 지원하는 언어 (.net, java)는 예외 유형이 공유되며 예외가 발생한 위치와 예외와 함께 진행해야 할 메시지가 명확합니다. 사용자에게도 숨겨져 야합니까? 아니면 어쨌든 이것을 보여줘야합니까? 아니면 일반적인 메시지를 보여 주어야합니까? 또는 기본 예외가 무엇인지에 따라 여러 메시지 중 하나를 표시해야합니까?

답변:


34

사용자에게 보여줄 것. 사용자에게도 숨겨져 야합니까?

사용자에게 실행 가능한 것을 보여줍니다.

예를 들어, 널 포인터 예외 및 사용자 오류보다 버그로 인해 오류가 발생하면 다른 작업을 수행 할 수 없기 때문에 자세한 설명을 원하지 않습니다.

아니면 어쨌든 이것을 보여줘야합니까? 아니면 일반적인 메시지를 보여 주어야합니까?

대부분의 사용자에게 예외를 주요 오류 메시지 내용으로 표시하는 것은 의미가 없습니다 . 대상 사용자 기반이 개발자 인 경우 정보를 항상 전체 오류로 표시 할 수 있습니다 (자동 테스트를위한 내부 애플리케이션이있을 수 있음). 그러나 일반적으로 사용자는 그 지식으로도 다른 것을 할 수 없습니다.

기본 예외가 무엇인지에 따라 여러 메시지 중 하나를 표시해야합니까?

최선의 전략은 다음을 수행하는 것입니다.

  • 사용자에게 의미있는 텍스트로 오류를 해석하십시오.
    • 이것의 일부는 "사용자가 다르게 할 수있는 것"입니다.
    • 다른 작업을 수행 할 수없는 경우 "예기치 않은 오류가 발생했습니다."와 같은 것을 말하십시오.
  • "선택적"세부 오류 설명 추가
  • 사용자가 오류 보고서를 제출하도록 허용 (또는 사용자 기반에 따라 자동으로 수행)

여기에 이미지 설명을 입력하십시오

  1. "여기서 일어난 일"(예기치 않은 오류)이 표시됩니다.
  2. 사용자에게 수행 할 작업을 알려줍니다 (메일 다시 열기,이를위한 바로 가기 포함)
  3. 누군가가 전체 기술 오류를보고 싶어하는 경우 "세부 정보보기"도 있습니다
  4. 오류 오류 보고서가 제출되었음을 통지합니다 (아래 참조).

경우에 따라 오류 보고서를 수동 대 자동으로 만들 수도 있습니다.


20
동의하지 않습니다. "오류가 발생했습니다"라고 인쇄하는 응용 프로그램만큼이나 성가신 것은 없습니다. 화면으로 돌아간 다음 종료합니다. 그런 일이 생길 때마다 개발자가 왜 그런 정보가없는 메시지를 인쇄 할 정도로 게으른 지 궁금합니다. 그들이 할 수있는 일이 없더라도 일반적인 의미에서 무엇이 잘못되었는지 이해할 수 있도록 사용자에게 무언가 를 설명 하십시오. 가장 좋은 시나리오는 Google에서 오류 메시지를 표시하고 다른 사람이 설명한 솔루션을 찾을 수 있으며, 모든 오류가 동일한 일반 메시지를 인쇄하는 경우 거의 불가능합니다.
Jon Bentley

3
@JonBentley 당신은 이것을 이해 하고 싶어하는 개발자로보고 있습니다. 평균 사용자는 단순히이 우려 될 것입니다 해야 그들이 필요하지 않는 그것을 이해합니다.
deworde

12
@deworde 반대로, 나는 그것을 사용자 로 고려하고 있습니다 . 사용자 는 기술적 인 용어 로 이해 하고 싶지 않지만 소프트웨어를 작성한 사람이 무능하다고 느끼지 않는 충분한 정보를 원합니다 ( "오류가 발생했습니다"는 개발자가 그들이 뭘했는지 알지 못해서 답을 찾을 수 있습니다. 모든 오류가 '오류가 발생했습니다'라고 표시되면 Google 검색이 도움이되지 않습니다. 각 상황에 대한 고유 한 메시지는 다른 사람이 같은 문제를 겪고 해결했을 수있는 포럼으로 안내 할 가능성이 훨씬 높습니다.
Jon Bentley

3
@JonBentley 고려할 몇 가지 사항. 첫째,이 답변의 주요 요점은 사용자에게 실행 가능한 정보를 제공하는 것입니다. 오류 인 경우 문제를 해결하기 위해 정보를 제공해야합니다. 이것은에 빠진다 You show the user what is actionable for them. 문제점의 원인을 알고 있으면 설명에서이를 사용자에게 표시하십시오. 그러나 일반적으로 오류 이유를 알고 있으면 사용자에게 적절하게 알리기위한 문제 해결 방법을 알게 됩니다.
enderland

2
둘째, 평균 사용자 능력을 과대 평가하여 문제를 자체 해결합니다. 압도적 인 인구의 대다수는 대부분의 개발자 / 프로그래머 / 스택 교환 사람들이 컴퓨터 문맹 이라고 부르는 것 입니다. 대부분의 사람들은 솔직히 문제를 진단하고, 해결하고, 해결할 수있는 능력이 없습니다. 사람들이 개발자에게 이해하기 쉬운 것을 잘못 해석 할 수 있기 때문에 세부 사항은 실제로 상황을 악화시킬 수 있습니다. 프로그래머와 기술에 정통한 사람들은 거의 모든 응용 프로그램의 목표 인구 통계가 아니며 거의 모든 사람들을 실망
시킵니다

12

사용자가 누구이며 정보로 무엇을 할 수 있는지에 달려 있습니다.

일반적으로, 스스로 해결할 수있는 것에 대한 유용한 정보 만 보여주십시오. 맨 위에 정규식 오류가있는 40 행 스택 추적은 그다지 유용하지 않습니다. Date가 "yyyy-mm-dd"형식이어야 한다는 메시지가 훨씬 좋습니다 . 다른 어떤 것도 사용자는 오류에 응답하는 방법을 알지 못하고 응용 프로그램을 사용하고 싶지 않을 수 있습니다. 흔적). 그리고 그것은 사업에 좋지 않을 수 있습니다.

다른 개발자가 사용하는 내부 응용 프로그램의 경우 사용자가 스택 추적을 볼 수 있고 스택 추적을 수행하는 방법을 알 수 있기 때문에 더 유용한 것 외에도 스택 추적을 표시하는 데 약간 더 편합니다 .

기술이 아닌 사용자의 경우 스택 추적을 보여줄 수 있다고 생각하는 유일한 시간 은 문제를 해결하기 위해 필요한 중대한 오류 상황에 있으며 스택 추적을 복사하여 붙여 넣어 보내라는 메시지가 나타납니다. 실제로는 훨씬 더 좋은 방법은 로그 파일을 보내도록 요청하는 것입니다. 더 나은 방법은 파일 공유 권한을 사용자에게 요청한 후 응용 프로그램이 개발자에게 로그 파일을 보내도록하는 것입니다.


5
묻지 않고 어디서나 로그를 보내는 응용 프로그램으로는 문제가되지 않습니다. 대신, 오류 메시지 대화 상자는 오류를보고하는 옵션을 제공해야합니다. 사용자는 보고서를 보내기 전에 스택 추적을 포함한 모든 정보를 검토 할 수 있어야합니다.
piedar

1
@piedar : 좋은 지적입니다.
FrustratedWithFormsDesigner

4
@piedar : 오류 대화 상자에 "자세한 내용보기"단추가 있거나 응용 프로그램 로그 파일에 대한 링크가 있으면 해당 정보를 원하는 파워 유저에게 모든 까다로운 세부 정보를 표시 할 수 있습니다. 코딩 문제가 발생하면 "기본적으로 세부 정보 표시"확인란도 있습니다. 그러나 모든 사용자가이를보고 싶어하는 것은 아니며 일부 사용자는이 기능을 사용 하지 않을 수도 있습니다.
FrustratedWithFormsDesigner

2
@ 패디 : 당신은 맞지만, 1) 예입니다. : P 2) 어쩌면 나는 그런 코드를 고치고 정리했을 것이다. 그래서 그것이 내 마음에 신선한 이유이다.
FrustratedWithFormsDesigner

2
@NateKerkhofs "그리고 그는 개발자가 있다면, 그는 버그 복제 할 수 있습니다".. - 오, 경우에만 :( 사실
Blorgbeard

1

사용자에게 보내는 메시지는 새 예외를 생성하는 것과 같은 방식으로 처리해야합니다. 사용자는 수행 할 작업을 결정하는 데 필요한 정보를 제공합니다.

물론 이것은 응용 프로그램과 사용자 기반에 따라 다르지만 기본 원칙이어야합니다. "호출자"가 원하는 조치를 수행하기 위해 무엇을 할 수 있는지 결정하기 위해 필요한 정보를 제공해야합니다. . 파일에 대한 액세스 오류와 같이 단순한 경우 파일 경로와 파일에 액세스 할 수 없다는 메시지를 제공합니다. 널 포인터 예외 인 경우 일반적인 오류 메시지를 제공하십시오.

물론 사용자가 실제로 고칠 수있는 것보다 "원하는 조치를 수행 할 수 없습니다"메시지가 더 많이있을 것입니다. 그러나 그것은 단지 인생입니다. 대부분의 예외는 사용자가 환경을 설정했기 때문이 아니라 실수를했기 때문입니다. 틀리게.


1

이것은 일반적인 주제입니다.

프로그래머, 개발자, 테스터 등과 같은 고급 사용자가 사용할 수있는 정보를 표시하는 동시에 정보를 얻지 못한 / 컴퓨터가 문맹 퇴치하는 데 어떻게 도움이됩니까?

답은 둘 다하는 것입니다!

순서는 중요하지만 다음을 권장합니다.

  • 어떻게 된 거예요.
  • 지금해야 할 일
  • 기술적 세부 사항

기술 세부 정보는 문제를보고 할 때 고급 주문 또는 일반 사용자에 대한 정보가있는 부분입니다.


0

당신이 보여주고 싶은 것은 망치는 것이 얼마나 부끄러운 지에 달려 있습니다.

요점은 실패에 대한 세부 정보를 기술 지원에 최대한 빠르고 원활하게 얻는 것입니다. 이는 종료 오류의 스택 추적을 포함하여 로그 파일을 자동으로 집으로 보내거나 사용자에게 전송을 시작할 버튼을 클릭하도록 요청하는 것을 의미 할 수 있습니다. 인터넷에 연결되어 있지 않으면 USB 스틱을 통해 연결될 수 있습니다.


0

나는 받아 들여진 대답에 대한 이론적 근거를 좋아하지만 적어도 정보를 "실행 가능한" 것으로 제한한다는 나의 해석에 대해 정중하게 동의하지 않아야한다 . "예기치 않은 오류" 보다 사용자보다 조금 더 작은 것을 알고 싶습니다 .

그리고 분명히 컴퓨터에 정통하고 편견이 있지만 이것이 특히 편견이라고 생각하지 않습니다. 항공과 같은 전문 지식이 거의없는 도메인에이 사고 방식을 적용하여 이러한 편견을 제거하기 위해 최선을 다할 수 있기 때문입니다.

항공에 대해 거의 알지 못하지만 비행이 지연되거나 취소되었다고 직원이 말한 유일한 것은 "예기치 않은 오류가 발생했습니다. 후속 비행을 위해 3 시간 정도 기다려주십시오." 실제로 어떤 경우에도 제 행동에 영향을 미치지는 않지만, 왜 내가 왜 있는지에 대해 조금 더 알고 싶기 때문에 불만이있는 고객을 적어도 조금 더 알게 될 것입니다. 유료 고객으로서 이러한 방식으로 불편을 겪었습니다.

그들이 "우리는 혹독한 날씨를 겪고있다"또는 "이전 비행에서 의학적 응급 상황이 발생했거나"장비 오작동 또는 그와 같은 말을한다면, "예기치 않은 오류"보다 훨씬 더 공감할만큼 충분합니다. 다음 비행을 위해 앉아서 3 시간을 기다리는 더 많은 콘텐츠가 있어야합니다. 사실, 나는 "예기치 않은 오류"로 머리 위로 넘어가는 기술 노바 블을 선호 할지도 모른다. 거기에 문제가 생겼고 커피를 마시고 거기에 앉아있을 것입니다!

그리고 종종 예외 처리 측면에서 catch, 다음과 같이 예외에 대한 더 자세한 기술 정보를 숨기고 싶더라도 사이트 에서 일어난 일에 대한 기본 정보가 충분하다고 생각합니다 .

try
{
     load_file(file_name);
}
catch (const exception& ex)
{
     exception_dialog("Failed to load file: '{1}'.", file_name);
}

그리고 그것은 예외에 첨부 된 매우 기술적 인 정보가 될 수있는 것을 보여주지는 않지만 최소한 "예기치 않은 오류"이상을 말해줍니다. 그것은 "왜 / 어떻게"라고 말하지 않더라도 적어도 문맥 상 "무엇 / 어디 / 어디"를 제공합니다. 최소한이 기본 정보 수준에 대한 열망은 특히 컴퓨터 절약에 의해 편향되지 않는다고 생각합니다.

나머지는 아마도 고객 및 특정 요구에 따라 매우 다를 수 있습니다. 그러나 나의 호소는 적어도 "예기치 않은 오류"보다 조금 더 작은 것에 대한 것이다.


음, 그것은 이다 편견보기. 일반 사용자는 왜 할 수없는 일을 할 수 없는지 신경 쓰지 않습니다. 그들은 문제를 해결할 수 있는지 여부와 방법 만주의합니다.
gnasher729

"일반 사용자는 왜 할 수없는 일을 할 수 없는지 신경 쓰지 않습니다. 문제를 해결할 수 있는지 여부와 방법 만 신경 쓰고 있습니다." 일반 사용자가 파일이나 서버가 무엇인지 이해하지 못하더라도 "실제로 작동 가능한"항목과 연결될 수 있습니다. 사용자가 어깨를 두드려서 "이봐 요" ,이 응용 프로그램은이 필수 구성 파일을 찾을 수 없습니다 "또는이 효과에 대해 설명합니다. 여기서 문제를 검색하고 신속하게 해결할 수 있습니다.
Dragon Energy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.