Skip to content

Latest commit

 

History

History

example

Example Programs Using LEAF to Handle Errors

  • print_file: This directory contains several versions of a trivial program which takes a file name on the command line and prints it. Each version uses a different error handling implementaiton.

  • try_capture_all_result.cpp: Shows how to transport error objects between threads in a leaf::result<T> object without using exception handling.

  • try_capture_all_exceptions.cpp: Shows how to transport error objects between threads in a leaf::result<T> object using exception handling.

  • lua_callback_result.cpp: Transporting arbitrary error objects through an uncooperative C API.

  • lua_callback_exceptions.cpp: Transporting arbitrary error objects through an uncooperative API using exceptions.

  • exception_to_result.cpp: Demonstrates how to transport exceptions through a noexcept layer in the program.

  • exception_error_log.cpp: Using accumulate to produce an error log.

  • exception_error_trace.cpp: Same as above, but the log is recorded in a std::deque rather than just printed.

  • print_half.cpp: This is a Boost Outcome example adapted to LEAF, demonstrating the use of try_handle_some to handle some errors, forwarding any other error to the caller.