Setiap kali pengguna melaporkan kesalahan seperti
System.Runtime.InteropServices.SEHException - Komponen eksternal telah membuat pengecualian?
apakah ada yang bisa saya lakukan sebagai programmer untuk menentukan penyebabnya?
Skenario: Satu pengguna (menggunakan program yang ditulis perusahaan saya) telah melaporkan kesalahan ini. Ini mungkin atau mungkin bukan kesalahan satu kali. Mereka menyebutkan bahwa dalam sebulan terakhir, komputer telah dua kali 'berhenti bekerja'. Saya telah belajar dari pengalaman, untuk tidak memahami deskripsi ini terlalu harfiah, karena biasanya berarti seseorang yang berkaitan dengan komputer tidak bekerja seperti yang diharapkan. Mereka tidak dapat memberi saya detail lebih lanjut dan saya tidak dapat menemukan kesalahan yang dicatat. Oleh karena itu, kesalahan ini mungkin saja atau mungkin bukan.
Dari pelacakan tumpukan, kesalahan sebenarnya adalah saat membuat kelas yang tidak secara langsung memanggil kode interop apa pun, tetapi mungkin dipersulit oleh fakta bahwa objek tersebut mungkin merupakan bagian dari daftar yang terikat pada data ke DevExpress Grid.
Kesalahan 'ditangkap' oleh rutinitas pengecualian yang tidak tertangani yang biasanya akan menutup program, tetapi memiliki opsi untuk mengabaikan dan melanjutkan. Jika mereka memilih untuk mengabaikan kesalahan, maka program terus bekerja tetapi kesalahan kembali terjadi saat rutinitas ini dijalankan berikutnya. Namun itu tidak terjadi lagi setelah menutup dan memulai ulang aplikasi kita.
Komputer yang dimaksud tampaknya tidak mengalami stres. Ini menjalankan Vista Business, memiliki memori 2GB dan menurut Task Manager hanya menggunakan sekitar setengah dari itu dengan aplikasi kami hanya sekitar 200Mb.
Ada satu bagian informasi lain yang mungkin relevan atau mungkin tidak relevan. Bagian lain dari program yang sama menggunakan komponen pihak ketiga yang secara efektif merupakan pembungkus dotnet di sekitar dll asli dan komponen ini memang memiliki masalah yang diketahui di mana terkadang, Anda mendapatkan
Mencoba membaca atau menulis memori yang dilindungi. Ini sering menjadi indikasi bahwa memori lain rusak
Pembuat komponen mengatakan bahwa ini telah diperbaiki pada versi terbaru dari komponen mereka yang kami gunakan secara internal, tetapi ini belum diberikan kepada pelanggan.
Mengingat bahwa konsekuensi kesalahan rendah (tidak ada pekerjaan yang hilang dan memulai ulang program dan kembali ke tempat semula paling lama hanya membutuhkan waktu satu menit) dan mengingat bahwa pelanggan akan segera mendapatkan versi baru (dengan pembaruan ketiga- komponen pihak), saya jelas bisa berharap kesalahan tidak akan terjadi lagi.
Tapi adakah yang bisa saya lakukan?