TaskGroup::getErrors
(PHP 8.6+, True Async 1.0)
php
public TaskGroup::getErrors(): arrayПовертає масив винятків (Throwable) з задач, що завершились з помилкою. Ключі масиву відповідають ключам задач з spawn() або spawnWithKey().
Метод не очікує завершення задач --- він повертає лише помилки, доступні на момент виклику.
Значення, що повертається
array<int|string, Throwable>, де ключ --- ідентифікатор задачі, а значення --- виняток.
Приклади
Приклад #1 Перегляд помилок
php
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->spawnWithKey('api', function() {
throw new \RuntimeException("Connection timeout");
});
$group->spawn(fn() => "ok");
$group->seal();
$group->all(ignoreErrors: true);
foreach ($group->getErrors() as $key => $error) {
echo "$key: {$error->getMessage()}\n";
}
// api: Connection timeout
$group->suppressErrors();
});Необроблені помилки
Якщо при знищенні TaskGroup залишаються необроблені помилки, деструктор сигналізує про це. Помилки вважаються обробленими, якщо:
- Викликано
all()зignoreErrors: false(за замовчуванням) і кинутоCompositeException - Викликано
suppressErrors() - Помилки оброблені через ітератор (
foreach)
Дивіться також
- TaskGroup::getResults --- Отримати масив результатів
- TaskGroup::suppressErrors --- Позначити помилки як оброблені
- TaskGroup::all --- Дочекатися всіх задач