カテゴリ: Go言語 更新日: 2025/06/19

Go言語のエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ

Go言語のエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ
Go言語のエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ

先生と生徒の会話形式で理解しよう

生徒

「Go言語って、エラーが出たときどうやって直すんですか?他の言語だと“例外”って聞いたことあるけど、Goでは違うんですか?」

先生

「いい質問ですね。Go言語では、例外(エクセプション)ではなく“エラー(error)”という仕組みを使って、問題が起きたことを処理します。」

生徒

「なるほど。でも初心者だと、どういうエラーが出やすいのかとか、どう対処すればいいのか分からないです…」

先生

「それでは、Go言語のエラー処理の基本と、初心者がよく出会うエラーとその解決方法について、やさしく説明していきましょう。」

1. Go言語の「エラー」とは?

1. Go言語の「エラー」とは?
1. Go言語の「エラー」とは?

Go言語では、プログラム中で問題が起きたときに「エラー(error)」という特別な値を使って知らせます。

たとえば、ファイルを開こうとしたときに、そのファイルが存在しなかった場合などにエラーが発生します。エラーが起きても、Go言語ではプログラムが勝手に止まることはなく、自分でエラーをチェックして処理する必要があります。

2. エラーの基本的な書き方と確認方法

2. エラーの基本的な書き方と確認方法
2. エラーの基本的な書き方と確認方法

Go言語では、関数の戻り値としてエラーを受け取ります。エラーがあるかどうかをif文でチェックして処理します。

次のようなコードで確認できます。


package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("sample.txt")
    if err != nil {
        fmt.Println("エラーが発生しました:", err)
        return
    }
    defer file.Close()
    fmt.Println("ファイルを正常に開けました")
}

このコードでは、os.Open関数でファイルを開こうとしています。errにエラーの内容が入るので、それをチェックしてから処理します。

3. 初心者がよく出会うGo言語のエラーとその対処法

3. 初心者がよく出会うGo言語のエラーとその対処法
3. 初心者がよく出会うGo言語のエラーとその対処法

Go言語を始めたばかりの人がよく出会うエラーをいくつか紹介し、その意味と対処方法を説明します。

3-1. undefined: 〇〇

undefinedというエラーは、使おうとした変数や関数が定義されていないときに出ます。


undefined: x

これは、「xという名前のものはまだ作っていませんよ」という意味です。

対処法:変数や関数を使う前に、正しく定義しておく必要があります。

3-2. cannot use 〇〇 (type string) as type int

これは、「文字列型(string)の値を、整数型(int)として使おうとしていますよ」という型のエラーです。


cannot use "10" (type string) as type int

対処法:型変換(キャスト)を行う必要があります。例えば、文字列から整数に変換するには、strconv.Atoi関数を使います。


package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "10"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("変換に失敗しました:", err)
        return
    }
    fmt.Println("整数に変換できました:", num)
}

3-3. panic: runtime error

panicとは、Go言語で重大なエラーが発生したときに出るメッセージです。

例えば、配列の範囲外にアクセスしたときなどに起こります。


panic: runtime error: index out of range

対処法:配列やスライスにアクセスする前に、インデックスが範囲内にあるか確認しましょう。

4. Goのエラーは「例外処理」とは違う?

4. Goのエラーは「例外処理」とは違う?
4. Goのエラーは「例外処理」とは違う?

他の言語、例えばJavaやPythonなどでは、trycatchという構文を使って「例外処理(エクセプションハンドリング)」を行います。

ですが、Go言語ではこのような仕組みは使わず、「エラーの値を自分でチェックして対応する」という方針をとっています。

このようにすることで、エラー処理が明示的になり、プログラムの動作が分かりやすくなるという利点があります。

5. 独自のエラーを作るには?

5. 独自のエラーを作るには?
5. 独自のエラーを作るには?

Go言語では、自分でエラーを作ることもできます。errors.Newという関数を使って、エラーメッセージを作ります。


package main

import (
    "errors"
    "fmt"
)

func checkAge(age int) error {
    if age < 18 {
        return errors.New("18歳未満は登録できません")
    }
    return nil
}

func main() {
    err := checkAge(16)
    if err != nil {
        fmt.Println("エラー:", err)
        return
    }
    fmt.Println("登録完了です!")
}

このように、年齢チェックなどの場面で自分でエラーを作ることで、より細かい制御が可能になります。

6. エラーが出たらどうすればいい?初心者向けチェックポイント

6. エラーが出たらどうすればいい?初心者向けチェックポイント
6. エラーが出たらどうすればいい?初心者向けチェックポイント

プログラミング初心者の方がエラーに出会ったとき、どう対応すればよいかのポイントを紹介します。

  • エラーメッセージをよく読む:英語の文章でも、どの行でどんな問題があるかを示しています。
  • スペルミスをチェック:変数や関数の名前を間違えていないか確認しましょう。
  • 型(データの種類)に注意:文字列・整数など、異なる型を混ぜないように気をつけましょう。
  • よくある文法ミス:波カッコ{}やセミコロンが正しく使われているかチェックしましょう。
  • ネット検索で調べる:エラーメッセージをコピーして検索するのも効果的です。
関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!