Tôi đã sử dụng thư viện Databinder Dispatch trong một máy khách cho một API REST-ish đơn giản. Tôi biết làm thế nào để phát hiện nếu tôi nhận được một phản ứng HTTP với một trạng thái lỗi:Thư viện Scala Dispatch: cách xử lý lỗi kết nối hoặc hết giờ?
Http x (request) {
case (200, _, _, content) => successResult(content())
case (404, _, _, _) => notFoundErrorResult
case (_, _, _, _) => genericErrorResult
}
Nhưng làm thế nào tôi có thể phân biệt được một phản ứng lỗi từ một thất bại để có được bất kỳ phản ứng nào cả, vì một miền không hợp lệ hoặc không kết nối ? Và có cách nào để thực hiện một thời gian chờ trong khi vẫn sử dụng ngữ nghĩa đồng bộ? Nếu có bất cứ điều gì có liên quan trong API, tôi đã bỏ lỡ nó.
Cảm ơn ... nhưng tôi không nghĩ rằng ExceptionListener làm những gì tôi muốn . Tôi muốn làm cho yêu cầu HTTP trả về một số giá trị X nếu nó có ngoại lệ E. Có vẻ như ExceptionListener không trả về bất kỳ thứ gì - nó được định nghĩa là Catcher [Unit]. Nó chỉ được gọi và sau đó Http trả lại ngoại lệ. Vì vậy, tôi nghĩ rằng tôi cần phải làm một thử/nắm bắt sau khi tất cả, đó là những gì tôi muốn tránh. –