Bất cứ khi nào người dùng báo cáo một lỗi chẳng hạn như
System.Runtime.InteropServices.SEHException - Thành phần bên ngoài đã ném một ngoại lệ?
Tôi là một lập trình viên có thể làm gì để xác định nguyên nhân không?
Tình huống: Một người dùng (sử dụng chương trình do công ty tôi viết) đã báo cáo lỗi này. Đây có thể là một lỗi duy nhất. Họ nói rằng trong tháng trước, máy tính đã hai lần 'ngừng hoạt động'. Tôi đã rút kinh nghiệm, không nên hiểu mô tả này theo nghĩa đen, vì nó thường có nghĩa là ai đó liên quan đến máy tính không hoạt động như mong đợi. Họ không thể cung cấp cho tôi thêm chi tiết và tôi không thể tìm thấy bất kỳ lỗi nào trong nhật ký. Do đó có thể có hoặc không có lỗi này.
Từ dấu vết ngăn xếp, lỗi thực sự là khi xây dựng một lớp không gọi trực tiếp bất kỳ mã tương tác nào, nhưng có lẽ phức tạp bởi thực tế là đối tượng có thể là một phần của danh sách được liên kết dữ liệu với DevExpress Grid.
Lỗi được 'bắt' bởi một quy trình ngoại lệ không được xử lý mà thường sẽ đóng chương trình, nhưng có một tùy chọn để bỏ qua và tiếp tục. Nếu họ chọn bỏ qua lỗi, thì chương trình tiếp tục hoạt động nhưng lỗi lại xảy ra khi quy trình này được chạy tiếp theo. Tuy nhiên, nó đã không xảy ra nữa sau khi đóng và khởi động lại ứng dụng của chúng tôi.
Máy tính được đề cập dường như không bị căng thẳng. Nó đang chạy Vista Business, có 2GB bộ nhớ và theo Task Manager thì chỉ sử dụng khoảng một nửa trong số đó với ứng dụng của chúng tôi chỉ khoảng 200Mb.
Có một phần thông tin khác có thể có liên quan hoặc không. Một phần khác của chương trình tương tự sử dụng thành phần của bên thứ ba, thành phần này thực sự là một trình bao bọc dotnet xung quanh một dll gốc và thành phần này có một vấn đề đã biết mà đôi khi, bạn gặp phải
Đã cố gắng đọc hoặc ghi bộ nhớ được bảo vệ. Đây thường là dấu hiệu cho thấy bộ nhớ khác bị hỏng
Các nhà sản xuất linh kiện nói rằng điều này đã được khắc phục trong phiên bản mới nhất của thành phần mà chúng tôi đang sử dụng trong nhà, nhưng điều này vẫn chưa được trao cho khách hàng.
Do hậu quả của lỗi là thấp (không có công việc nào bị mất và việc khởi động lại chương trình và quay lại vị trí cũ chỉ mất tối đa một phút) và cho rằng khách hàng sẽ sớm nhận được phiên bản mới (với bản cập nhật thứ ba- bên thành phần), tôi rõ ràng có thể vượt qua ngón tay của mình và hy vọng lỗi sẽ không xảy ra nữa.
Nhưng tôi có thể làm được gì hơn không?