Có một điều chưa được đề cập ở đây.
Với câu lệnh if-else, mỗi khi mã chạy, ít nhất 1 điều kiện được đảm bảo sẽ được đánh giá được thực thi. Tôi chắc rằng tất cả chúng ta đều biết cách hoạt động của if-else-elseif, nhưng phải rõ ràng ... nếu phần của câu lệnh sẽ luôn được đánh giá, nếu sai thì sau đó khác-nếu được đánh giá, và cứ thế cho đến khi chỉ có khác thì còn lại để đánh giá.
Vì vậy, việc sử dụng câu lệnh if-else sẽ ảnh hưởng đến hiệu suất của bạn. Không đáng kể (trong hầu hết các trường hợp), nhưng nó mất thời gian CPU để thực hiện các đánh giá.
câu lệnh try-catch và sửa tôi nếu tôi sai, không được xem xét trong thời gian chạy cho đến khi chúng được yêu cầu (nghĩa là ngoại lệ được ném). Vì vậy, chỉ đơn giản là gói mã của bạn trong một thử-catch sẽ không ảnh hưởng đến hiệu suất cho đến khi một ngoại lệ thực sự bị bắt bởi nó.
Ngoài ra, nó không phải là đánh bắt gây ra hiệu suất trúng, nhưng ném.
Và một điểm chính cần làm là, các câu lệnh try-catch KHÔNG BAO GIỜ được sử dụng cho logic điều kiện. Chúng chỉ nên được sử dụng cho những gì chúng được thiết kế cho: xử lý ngoại lệ!
Bắt ngoại lệ là điều cần thiết, nếu bạn biết phải làm gì với chúng. Nếu bạn không có cách xử lý đúng ngoại lệ thì bạn nên để nó đi, vì một số mã tiếp tục chuỗi có thể có cách tốt hơn để xử lý nó.
Một ý tưởng hay là có trình xử lý ngoại lệ ở cấp cao nhất tuyệt đối của ứng dụng để bắt ngoại lệ trước khi người dùng nhìn thấy. Trong ASP.NET bạn có thể làm điều này trong sự kiện Application_Error của global.asax. Trong các ngôn ngữ khác/môi trường bạn sẽ làm như vậy trong vòng lặp chính của bạn, bất cứ điều gì có thể được.
Nhưng lưu ý, có một số trường hợp ngoại lệ luôn bị bỏ rơi tốt nhất. Đôi khi, khi ngoại lệ xảy ra, đó là chỉ báo cho biết trạng thái đơn đăng ký của bạn đã bị xâm phạm nghiêm trọng và không thể tin cậy được. Điều an toàn duy nhất cần làm là giết và khởi động lại.
"Xử lý lỗi" và "Xử lý ngoại lệ" không giống nhau. – ThunderGr