У цьому уроці ми ретельно вивчимо CompletableFuture, зосередившись на методах runAsync та supplyAsync. Ми проаналізуємо, що означає виняток у контексті асинхронних завдань і як з ними працювати. Крім того, ми ознайомимося з методами exceptionally та handle для обробки виняткових ситуацій.