タグ

recoverとgolangに関するishideoのブックマーク (1)

  • Goのエラー処理② panicとrecover - 今川館

    Goのpanicとrecover Goのエラー処理は原則として例外を使わず、エラーを丁寧に処理すべき方針はわかったとして、Goの例外機構というものがどういう仕組なのか調べた。 まず、基に忠実に、golang.jpの説明を読むと、 実践Go言語 - golang.jp Recover panicが呼び出されたとき(これには、配列のインデックスが範囲外であるときや、型アサーションに失敗したような暗黙的なものも含む)は、すぐさま、カレントの関数を停止し、ゴルーチンのスタックの巻き戻しを開始します。その途中、遅延指定されている関数をすべて実行します。この巻き戻しがゴルーチンのスタックの先頭にたどり着くと、プログラムは終了します。ただし、組み込み関数recoverを使うことで、ゴルーチンの制御を取り戻し、通常の実行を再開させることが可能です。 panicが発生すると即座に処理を打ち切るので、これが

    Goのエラー処理② panicとrecover - 今川館
  • 1