タイムアウト エラーを具体的に確認する方法
Web サービス呼び出しを行う場合、潜在的な遅延や例外を処理するためにタイムアウトを設定するのが一般的です。ただし、タイムアウトが発生したかどうかを具体的に判断する必要がある場合があります。このガイドでは、これを実現する方法を説明します。
提供されている既存のコードは、接続および読み取り/書き込み操作のタイムアウトを処理します。特にタイムアウト エラーを確認するには、errors.Is 関数を os.ErrDeadlineExceeded エラーと組み合わせて利用できます。
ネット パッケージのドキュメントによると、
// If the deadline is exceeded a call to Read or Write or to other // I/O methods will return an error that wraps os.ErrDeadlineExceeded. // This can be tested using errors.Is(err, os.ErrDeadlineExceeded). // The error's Timeout method will return true, but note that there // are other possible errors for which the Timeout method will // return true even if the deadline has not been exceeded.
これは意味します。次のチェックを追加できます:
if errors.Is(err, os.ErrDeadlineExceeded) { // Handle timeout error }
または、任意のタイプの
if err, ok := err.(net.Error); ok && err.Timeout() { // Handle timeout error }
これらのチェックをコードに組み込むことで、タイムアウト エラーを効果的に特定し、それに応じて処理できるようになります。
以上がWeb サービス呼び出しのタイムアウト エラーを具体的に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。