ホームページ >バックエンド開発 >PHPチュートリアル >PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのエラー処理と例外キャプチャを実装する

PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのエラー処理と例外キャプチャを実装する

WBOY
WBOYオリジナル
2023-08-26 18:13:501319ブラウズ

PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのエラー処理と例外キャプチャを実装する

PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのエラー処理と例外キャプチャを実装します。

Baidu Wenxin Yiyan API は非常に人気のあるフレーズ生成インターフェイスであり、ランダムな文で、多くの興味深いフレーズや有名な引用を提供します。ただし、このインターフェイスを使用すると、リクエストのタイムアウトやエラー情報の返されなど、いくつかの問題が発生する場合があります。ユーザー エクスペリエンスを向上させるには、エラー処理関数と例外キャッチ関数をコードに追加して、プログラムの堅牢性と信頼性を高める必要があります。

まず、cURL 関数を使用してリクエストを送信し、インターフェースの戻り値を取得する必要があります。後続のエラー処理と例外キャプチャを容易にするために、このプロセスを関数にカプセル化します。

function getOneWord() {
    $url = 'https://v1.alapi.cn/api/word';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    $result = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    if ($httpCode == 200) {
        $result = json_decode($result, true);
        if ($result['code'] == 200) {
            return $result['data']['content'];
        } else {
            throw new Exception($result['msg']);
        }
    } else {
        throw new Exception('Request failed: ' . $httpCode);
    }
}

上記のコードでは、cURL 関数を使用して GET リクエストを送信し、タイムアウトを 5 秒に設定します。リクエストが成功した場合 (戻りコードが 200)、返された JSON データを連想配列に解析して、コードが 200 であるかどうかを判断します。成功した場合は、コンテンツ フィールドをフレーズとして返します。それ以外の場合は、カスタム例外、例外をスローします。この情報は、インターフェイスから返されるエラー情報です。

ビジネス コードでは、try-catch ステートメントを使用してこの例外をキャッチし、対応するエラー処理を実行できます。

try {
    $oneWord = getOneWord();
    echo '今日一句:' . $oneWord;
} catch (Exception $e) {
    echo '获取短语失败:' . $e->getMessage();
}

上記のコードでは、getOneWord 関数を呼び出して文を取得します。取得に成功した場合はページに出力され、取得に失敗した場合はエラーメッセージが出力されます。

Exception クラスによってスローされた例外をキャッチすることに加えて、いくつかの例外クラスをカスタマイズして、さまざまなエラーを異なる方法で処理することもできます。たとえば、リクエストのタイムアウト状況を処理するために TimeoutException クラスを定義できます。

class TimeoutException extends Exception {
    public function __toString() {
        return '请求超时,请稍后重试。';
    }
}

function getOneWord() {
    // ...
    if ($httpCode == 200) {
        // ...
    } else if ($httpCode == 28) {
        throw new TimeoutException();
    } else {
        throw new Exception('Request failed: ' . $httpCode);
    }
}

上記のコードでは、TimeoutException クラスを定義し、Exception クラスから継承し、__toString メソッドをオーバーライドして、カスタムエラーメッセージ。 getOneWord 関数では、リクエストがタイムアウトするとこの例外がスローされ、ビジネス コードで例外がキャプチャされ、それに応じて処理されます。

上記のエラー処理機能と例外キャッチ機能により、予期せぬ状況にうまく対処し、プログラムの安定性と信頼性を向上させることができます。実際の開発では、特定のニーズに応じてエラー処理と例外キャプチャのロジックを改良し、よりわかりやすいエラー情報と回復メカニズムを提供して、より良いユーザー エクスペリエンスを提供できます。

以上がPHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのエラー処理と例外キャプチャを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。