Bagikan melalui


Penanganan kesalahan di ekstensi Visual Studio

Pengecualian kemungkinan akan terjadi dalam program apa pun termasuk ekstensi Visual Studio. Mari kita pastikan kita menanganinya dengan benar dengan cara yang mengoptimalkan pengalaman pengguna ketika mereka terjadi.

Jika pengecualian adalah anomali yang seharusnya tidak terjadi, Anda ingin mencatat detail pengecualian dengan cara yang dapat Anda perbaiki. Tergantung pada tingkat keparahan masalah, Anda mungkin juga ingin memberi tahu pengguna tentang masalah tersebut.

Sertakan simbol

Untuk memastikan Anda memiliki informasi paling akurat tentang pengecualian yang terjadi, pastikan untuk menyertakan file .pdb dalam ekstensi. Ini diaktifkan secara default, tetapi pastikan untuk memeriksa dengan menampilkan properti (F4) proyek Anda.

Include the PDB file in the VSIX container.

Pastikan untuk mengatur properti Sertakan Simbol Debug di Kontainer VSIX ke True.

Ini mengatur Anda untuk mengumpulkan informasi yang Anda butuhkan. Mari kita lihat beberapa strategi untuk melakukan itu.

Telemetri otomatis

Anda dapat menggunakan mekanisme telemetri apa pun yang dapat Anda gunakan di aplikasi .NET apa pun dari ekstensi Anda. Opsi populernya adalah Application Insights, Raygun, Google Analytics , dll.

Anda harus melaporkan detail pengecualian secara manual melalui sistem telemetri ini menggunakan API mereka. Opsi ini adalah cara yang bagus untuk tetap berada di atas masalah apa pun yang terjadi pada komputer pengguna Anda dan memungkinkan Anda untuk proaktif memperbaiki masalah lebih awal.

Saat menggunakan opsi ini, pastikan untuk menyebutkannya dalam pernyataan privasi Anda, karena beberapa pengguna tidak suka melaporkan telemetri.

Log ke Jendela Output

Saat menggunakan try/catch blok untuk menangani pengecualian, mungkin menguntungkan untuk memberi tahu pengguna apa yang salah. Dengan begitu mereka dapat dengan mudah melaporkan masalah kepada Anda dengan cara yang mudah untuk Anda perbaiki.

Salah satu cara terbaik adalah menghasilkan detail pengecualian ke Jendela Output. Dengan begitu, pengguna dapat melihat pengecualian terjadi dan memberi mereka tumpukan untuk mengirimi Anda dalam laporan bug.

Community Toolkit membuatnya sangat mudah untuk melakukan itu. Dalam konteks sinkron, cukup gunakan Log() metode ekstensi pada apa pun Exception.

try
{
    // Do work;
}
catch (Exception ex)
{
    ex.Log();
}

Untuk konteks asinkron, hal yang sama dilakukan dengan menunggu LogAsync() metode ekstensi.

try
{
    // Do work;
}
catch (Exception ex)
{
    await ex.LogAsync();
}

Memberi tahu pengguna

Ketika pengecualian memiliki tingkat keparahan rendah kepada pengguna, tidak ada alasan untuk mengganggu mereka. Pertimbangkan untuk menggunakan bilah status untuk menunjukkan bahwa terjadi kesalahan.

Jika pengecualian parah dan menyebabkan alur pengguna terganggu, pertimbangkan untuk menggunakan kotak pesan untuk memberi tahu pengguna tentang kesalahan tersebut. Pastikan untuk masih mencatat pengecualian melalui telemetri dan/atau Jendela Output seperti yang dijelaskan sebelumnya.

Untuk mempelajari selengkapnya tentang cara menggunakan bilah status dan kotak pesan, lihat resep Pemberitahuan.