Handling API Errors

Whenever we have an input or output operation, there are chances that we can encounter an error. Similarly, here we have a network call and this could result in an error. So let's see how we can handle errors when an API fails or doesn't go as we expected.

addTodoFlow str = do
  resp <- callAPI (Headers []) TimeReq
  case resp of
    Left err -> appFlow (MainScreenError (show err))
    Right (TimeResp scc) -> appFlow (MainScreenAddTodo str scc)

We saw this code in the previous chapter and only looked at how the success response is handled. In our case matches, there's a Left and a Right, Right is our success and Left is our error. Currently, in our example, we call the appFlow with a different constructor MainScreenError and the error message (The show method makes the error as a string.)

results matching ""

    No results matching ""