Tôi đang cố gắng thêm một trình xử lý ngoại lệ chưa được xử lý trong .net (C#) cần trợ giúp cho 'người dùng' càng tốt. Người dùng cuối chủ yếu là các lập trình viên nên họ chỉ cần một gợi ý về đối tượng nào họ đang thao tác sai.Trong trường hợp ngoại lệ .net cách lấy một stacktrace với các giá trị đối số
Tôi đang phát triển một cửa sổ tương tự như báo cáo lỗi Windows XP khi một ứng dụng gặp sự cố nhưng cung cấp càng nhiều thông tin bắt chước càng tốt về ngoại lệ được ném.
Khi theo dõi ngăn xếp cho phép tôi (vì tôi có mã nguồn) để xác định nguồn gốc của sự cố, người dùng không có nó và do đó họ bị mất mà không có thêm thông tin. Không cần phải nói tôi phải dành nhiều thời gian hỗ trợ công cụ.
Có một vài ngoại lệ hệ thống như KeyNotFoundException được ném bởi bộ sưu tập từ điển thực sự gây lỗi cho tôi vì chúng không bao gồm trong thông báo khóa không tìm thấy. Tôi có thể điền vào mã của tôi với tấn cố gắng bắt khối nhưng nó khá agressive và rất nhiều mã để duy trì, chưa kể đến một tấn nhiều dây mà phải kết thúc được bản địa hoá.
Cuối cùng câu hỏi: Có cách nào để có được (lúc chạy) các giá trị của các đối số của từng hàm trong theo dõi ngăn xếp cuộc gọi không? Điều đó một mình có thể giải quyết 90% các cuộc gọi hỗ trợ.
Điều này đã được trả lời tốt, nhưng để tham khảo trong tương lai tôi cũng muốn thêm một con trỏ vào bài viết blog tuyệt vời của Raymond Chen [Khi nào một đối tượng trở nên sẵn sàng để thu thập rác?] (Http: //blogs.msdn. com/b/oldnewthing/archive/2010/08/10/10048149.aspx) Trong số những thứ khác, nó chỉ ra rằng việc thu thập đáng tin cậy các giá trị đối số từ dấu vết ngăn xếp là không thể, vì các đối số có thể được thu thập trong khi các phương thức được tham chiếu vẫn đang thực thi . –
Tôi đã thấy https://stackoverflow.com/questions/2696691/can-i-get-the-method-local-variables-through-a-stack-trace-in-c nhưng tôi không biết cách để có được 'StackTrace' từ đối tượng' Exception'. Trên nó có một 'String'. –