Tôi đang làm việc trong C++ môi trường và:
a) Chúng tôi bị cấm sử dụng ngoại lệ
b) Đó là application/dữ liệu mã máy chủ mà đánh giá rất nhiều yêu cầu của các loại khác nhauC++ thuần khiết đang
Tôi có kết quả đóng gói lớp đơn giản của hoạt động của máy chủ cũng được sử dụng nội bộ cho rất nhiều hàm ở đó.
class OpResult
{
.....
bool succeeded();
bool failed(); ....
... data error/result message ...
};
Như tôi đã cố gắng có tất cả các chức năng nhỏ và đơn giản, rất nhiều khối như thế này được phát sinh:
....
OpResult result = some_(mostly check)function(....);
if (result.failed())
return result;
...
Câu hỏi đặt ra là, là nó xấu thực hành để làm vĩ mô tìm kiếm như thế này và sử dụng nó mọi nơi?
#define RETURN_IF_FAILED(call) \
{ \
OpResult result = call; \
if (result.failed()) \
return result; \
}
Tôi hiểu rằng ai đó có thể gọi nó là khó chịu, nhưng có cách nào tốt hơn không? Cách nào khác để xử lý kết quả và tránh được nhiều mã bloat bạn sẽ đề xuất?
Điều gì sẽ xảy ra nếu cần dọn dẹp? –
Vâng, câu trả lời được chấp nhận của tôi bị một người kiểm duyệt ngẫu nhiên xóa một cách đơn phương, người không thích nó. –