ngoại lệ xử lý triết lý tôi chắc chắn bạn có thể tìm thấy nhiều triết lý khác
Mã việc phòng thủ. Bắt ngoại lệ là tốn kém hơn so với ngăn chặn các lỗi ở nơi đầu tiên.
Không bắt ngoại lệ và chôn nó bằng cách không xử lý. Bạn có thể dành nhiều giờ cố gắng tìm một lỗi đã bị chặn.
Làm các lỗi nhật ký mà bạn nắm bắt. Điều này giúp phân tích vấn đề.Bạn có thể kiểm tra xem nhiều hơn một người dùng có cùng một vấn đề không. Tôi thích một cơ sở dữ liệu để ghi nhật ký, nhưng một tệp phẳng hoặc nhật ký sự kiện cũng phù hợp. Giải pháp cơ sở dữ liệu dễ nhất để phân tích nhưng có thể đưa ra các lỗi bổ sung.
Nếu lỗi do dữ liệu xấu do người dùng nhập, hãy thông báo cho người dùng về sự cố và cho phép họ thử lại. Luôn cho phép tuyến đường thoát hiểm nếu chúng không thể khắc phục được sự cố.
Bắt lỗi gần nguồn nhất có thể Đây có thể là quy trình cơ sở dữ liệu, phương pháp trong lớp truy cập dữ liệu (DAL) hoặc một số vị trí khác.
Xử lý ngoại lệ khác với việc bắt nó. Bạn có thể cần phải tính lại ngoại lệ để nó có thể được xử lý cao hơn trong ngăn xếp hoặc trong giao diện người dùng.
Làm lại ngoại lệ có thể được thực hiện theo ít nhất hai cách. tự ném không làm thay đổi ngăn xếp. throw ex không thay đổi hoặc thêm vào stack mà không có lợi ích.
Đôi khi tốt nhất là không bắt ngoại lệ, nhưng thay vào đó hãy để nó phát sáng.
Nếu bạn đang viết dịch vụ (web hoặc cửa sổ) không có giao diện người dùng (UI) thì bạn nên luôn ghi nhật ký lỗi. Một lần nữa, điều này là để ai đó có thể phân tích nhật ký hoặc tệp cơ sở dữ liệu để xác định điều gì đang xảy ra.
Bạn luôn muốn ai đó biết rằng đã xảy ra lỗi.
Có rất nhiều câu lệnh bắt cho khối thử có thể làm cho mã của bạn khó bảo trì hơn, đặc biệt nếu logic trong khối catch của bạn phức tạp. Thay vào đó, mã phòng thủ.
Hãy nhớ rằng bạn có thể thử bắt các khối trong khối catch.
Ngoài ra, đừng quên sử dụng khối cuối cùng khi thích hợp. Ví dụ, đóng kết nối cơ sở dữ liệu, hoặc xử lý tập tin, vv
HTH Harv
Nếu 'list' là null, 'outputDictionaryContentsByDescending' nên ném 'ArgumentNullException' –