ホームページ >バックエンド開発 >Golang >golang でエラーをインターセプトする方法

golang でエラーをインターセプトする方法

silencement
silencementオリジナル
2019-12-25 13:17:211953ブラウズ

golang でエラーをインターセプトする方法

エラー インターフェイス タイプは、エラー処理の標準モードとして Golang に導入されています。関数がエラーを返す場合、戻り値のタイプ リストにはエラーが含まれている必要があります。エラー処理プロセスは C 言語のエラー コードに似ており、処理されるまでレイヤーごとに返すことができます。

Golang では、例外処理プロセスをトリガーして終了する 2 つの組み込み関数 Panic と Recovery を導入し、defer 後に関数の実行を遅らせるキーワード defer を導入しています。

#遅延関数 (defer 後の関数) は、defer ステートメントを含む関数が正の return を渡すかどうかに関係なく、defer ステートメントを含む関数が実行されるまで実行されません。

正常終了、またはパニックによる異常終了。関数内で複数の defer ステートメントを実行できます。これらのステートメントは宣言と逆の順序で実行されます。


golang チュートリアル

」を学習することをお勧めします。

プログラムの実行中に、null ポインタの参照や範囲外の添字などの状況が発生した場合、またはパニック関数などを明示的に呼び出すと、最初にパニック関数の実行がトリガーされ、次に遅延関数が呼び出されます。呼び出し元はパニックを渡し続けるため、関数の実行が停止したり、遅延実行関数が呼び出されたりするなど、プロセスが呼び出しスタック内で繰り返し発生し続けます。遅延関数内にrecover

関数への呼び出しがない場合、ctripの開始点に到達し、ctripが終了し、その後、メインctripを含む他のすべてのctripが実行されます(メインctripと同様)。 C 言語のスレッドは終了します) Ctrip ID は

1)。

エラーと例外は、Golang メカニズムの観点から見ると、エラーとパニックの違いです。 C/Java など、他の多くの言語でも同様で、errno 以外のエラーはなく、panic

はありませんが、throw は発生します。

Golang エラーと例外は相互に変換できます:

エラーは例外に変換されます。たとえば、プログラム ロジックは特定の URL をリクエストしようとします。最大 3 回試行できます。リクエストが 3 回の試行中に失敗した場合、それはエラーになります。3 回目の試行後に失敗した場合、

失敗は例外にアップグレードされます。例外はエラーに変わりますが、例えばパニックによる例外が回復した後、戻り値にエラータイプの変数が代入され、上位層関数

がエラー処理を続行できるようになります。

以上がgolang でエラーをインターセプトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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