Giả sử chúng ta đang viết một thư viện và rằng chúng tôi muốn cung cấp kiểm soát hạt mịn hơn lỗi và ngoại lệ:Chúng tôi nên triển khai std :: error_code API tương thích như thế nào?
void foo();
void foo(std::error_code&);
Linh hồn chúng ta thực hiện foo()
như ném một std::system_error
và để foo(std::error_code&)
bắt tất cả các ngoại lệ và trích xuất các error_code.
Hoặc chúng tôi có thể triển khai foo(std::error_code&)
làm chức năng không bao giờ ném và ném chức năng vào foo()
tùy thuộc vào sự hiện diện của mã lỗi không?
Xem xét tăng :: asio chẳng hạn. http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/reference/basic_stream_socket/connect.html – ForEveR
Tôi muốn nói điều đó cũng phụ thuộc vào những gì 'foo()' thực hiện. – netcoder