Trong C ++, bạn có thể chỉ định rằng một hàm có thể có hoặc không thể tạo ra một ngoại lệ bằng cách sử dụng một bộ định nghĩa ngoại lệ. Ví dụ:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Tôi nghi ngờ về việc thực sự sử dụng chúng vì những điều sau:
- Trình biên dịch không thực sự thực thi các chỉ định ngoại lệ theo bất kỳ cách nào nghiêm ngặt, vì vậy lợi ích không lớn. Lý tưởng nhất là bạn muốn gặp lỗi biên dịch.
- Nếu một hàm vi phạm một chỉ định ngoại lệ, tôi nghĩ hành vi tiêu chuẩn là chấm dứt chương trình.
- Trong VS.Net, nó coi cú ném (X) là cú ném (...), vì vậy việc tuân thủ tiêu chuẩn là không mạnh.
Bạn có nghĩ rằng các chỉ định ngoại lệ nên được sử dụng?
Vui lòng trả lời bằng "có" hoặc "không" và cung cấp một số lý do để biện minh cho câu trả lời của bạn.