エラー インターフェイス タイプは、エラー処理の標準モードとして 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 サイトの他の関連記事を参照してください。