Webからデータ取得する処理で例外が発生しても何度かリトライしたい時があったのでそのやり方です。

処理が成功するまでループ

成功しないと無限ループします。。。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php

while (true) {
    try {
        //処理
        break;
    } catch (\Exception $e) {
        sleep(1);
    }
}

一定回数で抜ける

一定回数で例外処理をします

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?php

$count = 0;
$maxTries = 3;

while (true) {
    try {
        //処理
        break;
    } catch (\Exception $e) {
        sleep(1);
        if (++$count === $maxTries) {
            //例外処理
        }
    }
}