Tôi có một phương pháp như ...tuyên bố một phương pháp luôn ném một ngoại lệ?
int f() {
try {
int i = process();
return i;
} catch(Exception ex) {
ThrowSpecificFault(ex);
}
}
này tạo ra một lỗi biên dịch "không phải tất cả đường dẫn mã trả về một giá trị". Nhưng trong trường hợp của tôi ThrowSpecificFault() sẽ luôn ném (ngoại lệ) thích hợp. Vì vậy, tôi buộc phải đặt một giá trị trả về ở cuối nhưng điều này là xấu xí. Mục đích của mẫu này ở vị trí đầu tiên là vì "process()" là một cuộc gọi đến dịch vụ web bên ngoài nhưng cần dịch nhiều ngoại lệ khác nhau để phù hợp với giao diện mong đợi của khách hàng (~ mẫu mặt tiền mà tôi giả sử) .
Bất kỳ cách nào khác để làm điều này?
Liên quan: [Có thuộc tính chuẩn "không bao giờ trả về" cho các hàm C# không?] (Http://stackoverflow.com/questions/1999181/is-there-a-standard-never-returns-attribute-for-c -functions) –