| この記事の要点 |
|
Go のエラーの特徴
Go 言語は明示的なエラーハンドリングを重視する設計で、多くの関数が (結果, error) の 2 値を返します。例外機構(try-catch)を持たず、if err != nil でその場で処理するのが基本スタイルです。この明快さゆえ、エラーメッセージも比較的読みやすく、原因特定がしやすいのが特徴です。
エラーは大きく 3 つの層に分かれます。
| 層 | 例 | 性質 |
|---|---|---|
| ツール / モジュール | go.mod file not found | go コマンド実行時。環境・設定の問題 |
| コンパイル | declared and not used / undefined: X | ビルド時。文法・型の問題 |
| ランタイム(panic) | nil pointer dereference / index out of range | 実行時。論理バグ |
コンパイルエラーの典型
Go は厳格で、使われていない変数や import を残すとコンパイルエラーになります。これは「読みやすさ・保守性のため」という言語設計の方針です。
// declared and not used: x
func main() {
x := 10 // 使われていない → コンパイルエラー
}
// imported and not used: "fmt"
import "fmt" // 使われていない → コンパイルエラー
一時的に回避するには _ = x(ブランク識別子への代入)や、import を _ "package"(副作用 import)にする手があります。
ランタイム panic の典型
- nil pointer dereference — nil のポインタ/インタフェース/マップにアクセス。マップは
makeで初期化を忘れがち - index out of range — スライス/配列の範囲外アクセス。
len()で境界チェック - assignment to entry in nil map —
var m map[string]intだけでm["k"]=1すると panic。m := make(map[string]int)が必要
panic は defer + recover() で捕捉できますが、Go の流儀では「想定内のエラーは error で返し、panic は本当に異常な場合のみ」が推奨です。
関連リンク
同階層のページ
- エラー一覧
- コマンド・ディレクティブ一覧
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- djangoのテンプレートの作成とヘッダー・フッターの共通化 2026-10-03 21:41:49
- テンプレートフラグメント(ヘッダー等の共有化) 2026-10-03 21:41:49
- reCAPTCHA v3 使い方(サンプル付き) 2026-10-03 21:37:05
- Content-Type一覧|MIMEタイプとはとHTTPでの主な使用場面 2026-10-03 21:37:05
- SpringにおけるAOPの使い方 2026-10-03 21:37:05
- X (Twitter) API でツイートできないがエラーが出ない問題の原因と対処 2026-10-03 11:33:01
- X (Twitter) API アプリケーション登録完全ガイド|v2・Bearer Token・OAuth 2.0 PKCE 2026-10-03 11:33:01
- X (Twitter) API 完全ガイド|従量課金の料金・単価(2026年10月)と v2 移行 2026-10-03 11:32:40
- Google DeepMind とは?Gemini・AlphaFold の開発元 2026-10-03 11:26:56
- Cursor とは?AI 統合型コードエディタの使い方・料金 2026-10-03 11:26:56
- Claude (Anthropic) とは?AIチャットの使い方・モデルファミリ・API 2026-10-03 11:26:56
- AIベンダー一覧:OpenAI・Anthropic・Google DeepMind・Microsoft・Meta 2026-10-03 11:26:56
- クラウド・インフラ完全ガイド — AWS/Azure/GCP/Kubernetes 2026-10-03 11:26:56
- テキストエディタ完全比較 (VS Code / Cursor / Vim / Emacs / IDE) 2026-10-03 11:26:56
- プログラミング学習プラットフォーム|Scratch・micro:bit ほか 2026-10-03 11:26:56