Terus mengejutkan saya bahwa, di zaman sekarang ini, produk-produk yang telah bertahun-tahun digunakan di bawah ikat pinggang mereka, dibangun oleh tim profesional, masih sampai hari ini - gagal memberikan pesan kesalahan yang bermanfaat kepada pengguna. Dalam beberapa kasus, penambahan sedikit informasi tambahan dapat menghemat waktu pengguna.
Program yang menghasilkan kesalahan, membuatnya karena suatu alasan. Ia memiliki segalanya untuk menginformasikan pengguna sebanyak mungkin, mengapa sesuatu gagal. Namun tampaknya memberikan informasi untuk membantu pengguna adalah prioritas rendah. Saya pikir ini adalah kegagalan besar.
Salah satu contohnya adalah dari SQL Server. Ketika Anda mencoba dan mengembalikan database yang sedang digunakan, itu benar tidak akan membiarkan Anda. SQL Server tahu proses dan aplikasi apa yang mengaksesnya. Mengapa tidak bisa memasukkan informasi tentang proses yang menggunakan database? Saya tahu tidak semua orang memberikan Applicatio_Name
atribut pada string koneksi mereka, tetapi bahkan petunjuk tentang mesin tersebut dapat membantu.
Kandidat lain, juga SQL Server (dan mySQL) adalah string or binary data would be truncated
pesan kesalahan yang indah dan setara. Banyak waktu, teliti pernyataan SQL yang dihasilkan dan tabel menunjukkan kolom mana yang menjadi biang keladinya. Ini tidak selalu terjadi, dan jika mesin database mengambil kesalahan, mengapa itu tidak bisa menyelamatkan kita saat itu dan hanya memberi tahu kita kolom terkutuk itu? Pada contoh ini, Anda dapat berargumen bahwa mungkin ada hit kinerja untuk memeriksanya dan bahwa ini akan menghalangi penulis. Baik, saya akan membelinya. Bagaimana, setelah mesin basis data tahu ada kesalahan, ia melakukan perbandingan cepat setelah fakta, antara nilai-nilai yang akan disimpan, versus panjang kolom. Kemudian tampilkan itu ke pengguna.
ASP.NET, Table Adapters juga bersalah. Kueri dapat dieksekusi dan satu dapat diberikan pesan kesalahan yang mengatakan bahwa suatu kendala di suatu tempat dilanggar. Terima kasih untuk itu. Saatnya membandingkan model data saya dengan basis data, karena pengembang terlalu malas untuk memberikan bahkan nomor baris, atau contoh data. (Sebagai catatan, saya tidak akan pernah menggunakan metode akses data ini karena pilihan , itu hanya proyek yang saya warisi!).
Setiap kali saya melemparkan pengecualian dari kode C # atau C ++ saya, saya memberikan semua yang saya miliki kepada pengguna. Keputusan telah dibuat untuk membuangnya, sehingga semakin banyak informasi yang dapat saya berikan, semakin baik. Mengapa fungsi saya membuang pengecualian? Apa yang diteruskan, dan apa yang diharapkan? Hanya perlu waktu sedikit lebih lama bagi saya untuk memasukkan sesuatu yang bermakna ke dalam tubuh pesan pengecualian. Sial, itu tidak membantu saya sementara saya berkembang, karena saya tahu kode saya melempar hal-hal yang bermakna.
Orang dapat berpendapat bahwa pesan pengecualian yang rumit tidak boleh ditampilkan kepada pengguna. Sementara saya tidak setuju dengan itu, itu adalah argumen yang dapat dengan mudah diredakan dengan memiliki tingkat verbositas yang berbeda tergantung pada build Anda. Bahkan kemudian, para pengguna ASP.NET dan SQL Server bukan pengguna tipikal Anda, dan akan lebih suka sesuatu yang penuh dengan informasi verbal dan lezat karena mereka dapat melacak masalah mereka lebih cepat.
Mengapa para pengembang berpikir tidak apa-apa, di zaman sekarang ini, untuk menyediakan jumlah minimum informasi ketika terjadi kesalahan?
Ini 2011 orang, datang pada .