エラーのチェック
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 105/109。
Goでは、if文を使用してエラーをチェックします。このパターンは非常に一般的です。
if err != nil を使用してエラーが発生したかどうかを確認します:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // エラーが発生した場合は実行を停止します
}
// エラーがない場合のみ続行します
fmt.Println("Result:", result)
}出力は次のようになります:
Error occurred: cannot divide by zeroチャレンジ
初心者Goでは、関数はしばしば結果を使用する前にチェックする必要があるエラー値を返します。このチャレンジでは、if文を使用してエラーをチェックする練習をします。
ファイルを開くことをシミュレートし、ファイルが存在しない場合にエラーを返すopenFileという関数があります。あなたのタスクは、エラーがあるかどうかをチェックし、適切なメッセージを出力することです。
チートシート
if err != nil を使用してエラーをチェックします:
result, err := someFunction()
if err != nil {
fmt.Println("Error occurred:", err)
return // エラーが発生した場合は実行を停止します
}
// エラーがない場合のみ続行します
fmt.Println("Result:", result)自分で試してみよう
package main
import (
"fmt"
)
// この関数はファイルを開くシミュレーションを行います
// ファイルが存在しない場合はエラーを返します
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil はエラーがないことを意味します
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// openFile 関数を呼び出します
err := openFile(filename)
// TODO: err が nil でない(エラーが発生したことを意味する)か確認してください
// エラーが発生した場合は、"Error: " に続けてエラーメッセージを表示してください
// エラーが発生しなかった場合は、"File opened successfully" と表示してください
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
11複合型:スライス
スライス入門スライスリテラルの宣言`make` によるスライスの作成スライスの長さと容量スライス要素へのアクセス要素の追加既存のスライス/配列のスライススライスの反復処理スライスのコピーまとめ:動的リスト14エラーハンドリングの基本
エラーの概念`error` インターフェースエラーを返す関数エラーのチェックシンプルなエラーの作成フォーマット済みエラーの作成基本的なエラーハンドリングまとめ:問題への対処