Best Practices for Error Handling in Concurrent Programming

Learn how to handle errors in concurrent programming with tasks and returning data.

Returning data and handling errors

The examples presented in this chapter have used shared variables to communicate the state between threads. We have used mutex locks to ensure that we avoid data races. Using shared data with mutexes, as we have been doing, can be very hard to do correctly when the size of a program increases. There is also a lot of work in maintaining code that uses explicit locking spread out over a code base. Keeping track of shared memory and explicit locking moves us further away from what we want to accomplish and spend time on when writing a program.

In addition, we haven’t dealt with error handling at all yet. What if a thread needs to report an error to some other thread? How do we do that using exceptions, as we are used to doing when a function needs to report a runtime error?

Get hands-on with 1200+ tech skills courses.