Bir hata hakkında ne kadar bilgi kullanıcıya gösterilmeli?


38

Uygulamalar her zaman hata atabilir. Eğer böyle bir hata meydana gelirse, kullanıcıya bildirilmesi gerekir, çünkü başvurunun yapmasını istediği şey başarılı olamadı.

Ancak, kullanıcıya ne kadar bilgi verilmelidir? Sanırım çoğumuz bir yığın izlemeyi göstermemeye katılıyoruz ( Bir yığın izlemesi kullanıcıya sunulan hata iletisinde mi olmalı? ), Ancak hata içeriğinin geri kalanı veya ne göstermesi gerektiği hakkında bir soru bulamıyorum. kullanıcı.

Örneğin, istisnaları destekleyen bir dil (.net, java), istisnanın gerçekleştiği paylaşılacak istisna türüne ve istisna ile birlikte açıklayıcı bir mesaja sahiptir. Bu da kullanıcıdan gizlenmeli mi? Yoksa yine de bunu gösterelim mi? Yoksa genel bir mesaj mı göstermeliyiz? veya altında yatan istisnanın ne olduğuna bağlı olarak birkaç mesajdan birini göstermeli miyiz?

Yanıtlar:


34

kullanıcıya ne gösterileceği. Bu da kullanıcıdan gizlenmeli mi?

Kullanıcıya onlar için neyin uygulanabilir olduğunu gösterirsiniz.

Örneğin, bazı boş gösterici istisnası ve kullanıcı hatasından daha fazla hata nedeniyle oluşan bir hatanız varsa, tam bir açıklama yapmak istemezsiniz çünkü farklı bir şey yapamazlar.

Yoksa yine de bunu gösterelim mi? Yoksa genel bir mesaj mı göstermeliyiz?

Özel durumun birincil hata mesajı içeriği olarak gösterilmesi çoğu kullanıcı için anlamsızdır . Belki de hedef kullanıcı tabanınız geliştiriciler ise, bilgileri her zaman tam hata olarak gösterebilirsiniz (belki de otomatik testler için dahili bir uygulamanız vardır). Ancak genellikle kullanıcılar bu bilgiyle bile farklı bir şey yapamazlar.

temel istisnanın ne olduğuna bağlı olarak birkaç mesajdan birini göstermeli miyiz?

En iyi strateji aşağıdakileri yapmaktır:

  • Hatayı kullanıcı için anlamlı olan metne çevirin.
    • Bunun bir kısmı "Kullanıcı farklı şekilde ne yapabilir?"
    • Farklı bir şey yapamazlarsa, "beklenmeyen bir hata oluştu" gibi bir şey söyleyin.
  • Bir "isteğe bağlı" ayrıntılı hata açıklaması ekleyin
  • Kullanıcıların hata raporunu göndermelerine izin verin (veya bunu kullanıcı tabanına bağlı olarak otomatik olarak yapın)

Örnek

görüntü tanımını buraya girin

  1. "İşte ne olduğunu" gösterir (beklenmeyen hata)
  2. Kullanıcıya ne yapması gerektiğini söyler (Postaları yeniden açma, bunun için bir kısayol bile içerir)
  3. Ayrıca, birisinin teknik hatayı tam olarak görmesini isteyen biri varsa "ayrıntıları göster"
  4. Bildirimde hata hatası raporu verilir (aşağıya bakınız)

Bazı durumlarda, hata raporunun otomatik veya otomatik olarak manuel olmasını isteyebilirsiniz.


20
Katılmıyorum. "Bir hata oluştu" yazan bir uygulama kadar yoğun derecede sinir bozucu bir şey yoktur. ekrana ve sonra çıkar. Bu ne zaman olursa olsun, geliştiricinin neden bu kadar bilgilendirici olmayan bir mesaj yazacak kadar tembel olduğunu merak ediyorum. Kullanıcıya bir şeyler açıklayın , böylece genel anlamda neyin yanlış gittiğini anlayabilirler, bu konuda yapabilecekleri hiçbir şey olmasa bile. En iyi senaryo, Google’ın hata mesajını bulabilir ve belki de başka birisinin tarif ettiği bir çözüm bulabilir; bu, her farklı hatanın aynı genel mesajı basması durumunda neredeyse imkansızdır.
Jon Bentley,

3
@JonBentley Bu şeyi anlamak isteyen bir geliştirici olarak bakıyorsunuz . Ortalama bir kullanıcı, basitçe gerek duymayacaklarını anlamaları gerektiğinden endişelenecektir .
deworde

12
@deworde Aksine, bir kullanıcı olarak düşünüyorum . Bir kullanıcı olarak, teknik terimlerle anlamak istemiyorum , ancak yazılımı yazan kişinin yetersiz kaldığını ("bir hata oluştu" geliştiricisinin yapmadığı izlenimini veriyor gibi hissetmediğim için yeterince bilgi istemiyorum). ne yaptıklarını bilmiyorum) ve böylece cevapları arayabilirim. Her bir çöküşte "bir hata oluştu" yazıyorsa, o zaman bir Google araması bana yardımcı olmayacak. Her durum için benzersiz bir mesajın, başka birinin de aynı problemi yaşadığı bir foruma gitmesi ve belki de çözmesi daha muhtemeldir.
Jon Bentley,

3
@JonBentley dikkate almak için birkaç puan. İlk olarak, bu cevabın temel amacı kullanıcıya işlem yapılabilir bilgiler vermektir. Bir hataysa düzeltebilecekleri bir sorunu çözmeleri için onlara bilgi vermeleri gerekir. Bu içine düşüyor You show the user what is actionable for them. Sorunun nedenini biliyorsanız, bunu açıklamada kullanıcıya gösterirsiniz. Ama genelde eğer bilmek bir hata sebebini, olur biliyor uygun kullanıcıyı bilgilendirmek için sorun çözümü.
enderland

2
İkincisi, sorunları kendi kendine çözme ortalama kullanıcı yeteneğini büyük ölçüde abartıyorsunuz. Nüfusun ezici çoğunluğu, çoğu geliştirici / programcı / Stack Exchange milletvekilinin bilgisayar okuryazarlığı olarak adlandırdığı şeydir . Bu kişilerin çoğu açıkçası sorunları teşhis, sorun gidermek ve çözmek için donanımlı değiller. Detay aslında işleri daha da kötüleştirebilir çünkü insanlar geliştiricilere mantıklı gelebilecek şeyleri yanlış yorumlayabilir. Programcılar ve teknoloji meraklısı insanlar neredeyse evrensel olarak çoğu uygulama için hedef demografik değil, buradaki herkesin hayal kırıklığına
uğramasına rağmen

12

Kullanıcının kim olduğuna ve bu bilgilerle neler yapabileceklerine bağlıdır.

Genel olarak, onlara kendileri çözebilecekleri şeyler hakkında yalnızca yararlı bilgiler göstermeye çalışın. Üstünde düzenli ifade hatası olan 40 satırlık yığın izi çok kullanışlı değil. Çok daha iyisi, Date'in "yyyy-mm-gg" olarak biçimlendirilmesi gerektiğini söyleyen bir mesaj olacaktır . Başka bir şey ve kullanıcı hataya nasıl cevap vereceğini bilemeyebilir ve ardından uygulamanızı kullanmak istemeyebilir, çünkü daha şifreli ve korkutucu hatalara neden olur (ve evet, teknik olmayan kullanıcılar bazen yığınla korkarlar) izleri). Ve bu iş için kötü olabilir.

Diğer geliştiriciler tarafından kullanılan dahili uygulamalar için, daha yararlı bir şeyin yanı sıra , yığın izlemesi gösterme konusunda biraz daha rahatım , çünkü kullanıcının yığın izlemeyi görmeyi idare edebileceğini ve muhtemelen bu konuda ne yapacağını bileceğini biliyorum.

Teknik olmayan kullanıcılar için, onlara yığın izini göstermenin doğru olacağını düşündüğüm tek zaman , sorunu çözmek için ihtiyaç duyduğunuz kritik bir hata durumundadır ve yığın izini kopyalayıp yapıştırıp göndermeleri istenir. Size göre, bunu yapmanın gerçekten daha iyi bir yolu, bir günlük dosyası göndermelerini istemek ya da daha iyisi, kullanıcıdan dosyayı paylaşma izni istedikten sonra, uygulamanın geliştiriciye bir günlük dosyası göndermesini istemek.


5
Bana sormadan herhangi bir yere günlükleri gönderen bir uygulama ile Tamam olmaz. Bunun yerine, hata mesajı iletişim kutusu hatayı bildirmek için bir seçenek sağlamalıdır. Kullanıcı, raporu göndermeden önce yığın izlemesi dahil tüm bilgileri gözden geçirebilmelidir.
piedar

1
@piedar: Bu iyi bir nokta.
FrustratedWithFormsDesigner

4
@piedar: Hata diyalogunda "Daha fazla ayrıntı gör" düğmesine sahip olmak veya uygulama günlüğü dosyasına bir link vermek, muhtemelen tüm kanlı detayları bu bilgiyi isteyen güç verenlere sunmak için iyi bir yoldur. Kodlama zahmetine girmek istiyorsanız, "ayrıntıları varsayılan olarak göster" onay kutusunu bile işaretleyin. Ancak tüm kullanıcıların o görmek isteyecektir ve bazı kullanıcılar olacaktır Bununla kapatılabilir.
FrustratedWithFormsDesigner

2
@Paddy: Haklısın, ama: 1) Bu bir örnek. : P 2) Belki de bu tür kodları düzelttim ve temizledim, bu yüzden aklımda bu taze ...
Sinir

2
@NateKerkhofs "Ve eğer geliştirici o ise, böceği çoğaltabilir" .. - oh, eğer sadece bu doğru olsaydı :(
Blorgbeard

1

Kullanıcılara gönderilen mesajlar, atılacak yeni bir istisna oluştururken olduğu gibi değerlendirilmelidir - ne yapmaları gerektiğine karar vermeleri için gereken bilgileri sağlarsınız.

Elbette bu, uygulamanıza ve kullanıcı tabanınıza bağlı olacaktır, ancak yol gösterici müdürünüz olmalıdır - amacınız, "bir arayan" için istenen eylemi başarılı bir şekilde gerçekleştirmek için ne yapabileceklerini belirlemek için "arayan" için gerekli bilgileri sağlamak olmalıdır. . Bir dosyaya erişim hatası gibi basit bir şeyse, bir dosya yolu ve dosyaya erişemediğiniz mesajını verirsiniz. Boş bir işaretçi istisnası ise, genel bir hata mesajı verin.

Tabii ki, kullanıcının istediği şeyi yapabileceğinden daha fazla "istenen işlemi yapamıyorum" mesajları olacak, ama bu sadece hayat - çoğu istisnalar, kullanıcının çevreyi kurmasından değil, bir hata yaptığımızdır yanlış.


1

Bu yaygın bir temadır:

Bilgilendirici / bilgisayarın okuma yazma bilmemesine, programcılar, geliştiriciler, testler vb. Gibi daha ileri kullanıcıların kullanabileceği bilgileri gösterme konusunda nasıl yardımcı olabilirsiniz.

Bence cevap ikinizi de yapın!

Sipariş olsa da önemlidir ve şunları yapmanızı öneririm:

  • Ne oldu.
  • şimdi ne yapmalı
  • Teknik detaylar

Teknik Ayrıntılar, bir sorun bildirirken hem gelişmiş siparişler hem de normal kullanıcılar için bilgileri olan bölümdür.


0

Göstermek istediğin, batırdığın için ne kadar utandığına bağlı.

Mesele, teknik desteğin başarısızlığı ile ilgili detayları olabildiğince hızlı ve sorunsuz bir şekilde elde etmektir. Bu, sonlandırılan hatanın yığın izini içeren günlük dosyasını otomatik olarak evinize geri gönderdiğiniz veya nazikçe kullanıcıdan aktarımı başlatacak bir düğmeyi tıklatmanız gerektiği anlamına gelebilir. İnternet bağlantısı yoksa Belki USB çubuğu ile.


0

Kabul edilen cevabın arkasındaki gerekçeyi seviyorum, ama en azından bilgiyi "eyleme geçirilebilir" olanla sınırlandırma yorumuma kesinlikle saygı duymamalıyım . Ben "beklenmedik hata" dan bir kullanıcı olarak bundan biraz daha ufacık biraz daha fazla bilmek istiyorum .

Ve kuşkusuz ki biraz bilgisayar meraklıyım ve bu önyargıya sahibim, ancak bunun özellikle önyargılı bir görüş olduğunu sanmıyorum. Çünkü bu zihniyeti havacılık gibi çok az uzmanlığım olan etki alanlarına uygulayarak bu önyargıyı gidermeye çalışabilirim.

Havacılık hakkında çok az şey bilmeme rağmen, uçuşumun ertelendiğini veya iptal edildiğini ve personelin söylediği tek şeyin "Beklenmedik bir hata oluştu. Lütfen bir sonraki uçuş için 3 saat bekleyin" olduğunu söyleyin. Bu durumlarda beni en azından biraz daha rahatsız edici bir müşteri olarak bulacaksın, çünkü bu benim davranış tarzımı gerçekten etkilemese de, neden olduğum hakkında biraz daha fazla bilgi edinmek istiyorum. ödeme yapan bir müşteri olarak bu şekilde rahatsız edici.

"Çalkantılı hava durumu yaşıyoruz" veya "Önceki uçuşumuzda acil bir tıbbi durumumuz vardı" veya ekipman arızası veya her neyse, "beklenmedik hata" dan çok daha fazla sempati duymam için yeterli olan ve biraz daha içeriğe oturmak ve bir sonraki uçuş için 3 saat beklemek. Aslında, kafamın üstünden "beklenmedik hata" ya da "beklenmedik hata" ya kadar giden bazı teknolojiyi bile tercih edebilirim. Pekala, ağzınızdan çıkan kelimeler kulağıma giriyor, ancak merkezi işlemciye ulaşmıyor. orada sorun ve ben gidip biraz kahve alıp oraya oturuyorum!

Ve çoğu zaman istisnalarla catchilgili olarak, istisnanın daha teknik ayrıntılarını gizlemek isteseniz bile , sitede ne olduğuna dair genellikle bu tür bir temel bilgiye sahip olduğunuzu düşünüyorum.

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

Ve bu istisnaya eklenmiş çok teknik bilgilerin potansiyel olarak ne olabileceğini göstermiyor, ama en azından bize "beklenmeyen hata" dan çok daha fazla şey söylüyor. En azından “neden / nasıl” demese bile bağlamsal bir “ne / nerede / ne zaman” sağlar. En azından bu temel bilgi seviyesine duyulan arzunun bilgisayar tutuculuğumdan dolayı önyargılı olmadığını düşünüyorum.

Gerisi muhtemelen müşterilerinize ve özel gereksinimlerinize özeldir. Ancak temyiz başvurum en azından "beklenmedik hata" dan daha ufacık bir şey için.


Eh, o ise önyargılı bir görünüm. Ortalama bir kullanıcı, yapamadıklarını neden yapamadıklarını umursamıyor. Sadece problemlerini nasıl çözebileceklerini ve nasıl çözebileceklerini önemserler.
gnasher729

“Ortalama bir kullanıcı neden yapamadıklarını yapamadıklarını umursamıyor. Sadece sorunlarını çözüp çözemeyeceklerini önemsiyorlar.” Ortalama bir kullanıcı, belki de bir dosya veya sunucunun ne olduğu gibi bir şey anlamadıysa, ama o zaman hala "eyleme geçirilebilir" olana bağlanabilir, çünkü onlar omzuna dokunup "Hey" diyebilirler. , bu uygulama, bu gerekli yapılandırma dosyasını bulamadığını söylüyor "ya da bu etkiye bir şey bulabilir, bu durumda sorunu arayabilir ve hızlı bir şekilde düzeltebilirsiniz, örneğin
Dragon Energy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.