panic: runtime error
Goでpanicが発生した場合の原因と対処方法
概要
Goの panic は、プログラムが回復不能な状態に陥った場合に発生します。明示的に呼び出すこともでき、recover でキャッチしない限りプログラムがクラッシュします。
エラーメッセージ
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x...]
panic: runtime error: index out of range [5] with length 3
panic: assignment to entry in nil map
よくあるpanic
1. nilポインタ参照
| |
2. 範囲外アクセス
| |
3. nilマップへの書き込み
| |
4. 閉じたチャネルへの送信
| |
5. 型アサーションの失敗
| |
解決策
1. nilチェック
| |
2. 境界チェック
| |
3. マップの初期化
| |
4. 型アサーションの安全版
| |
5. recoverでpanicをキャッチ
| |
6. Webサーバーでのrecover
| |
7. チャネルの安全な操作
| |
panicを使うべき場面
| |
関連エラー
関連エラー
Go の他のエラー
この記事は役に立ちましたか?