
エラー処理
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
20 面接問題·
Junior
1Goでエラーを表現するために使われるインターフェースは何ですか?
1
Goでエラーを表現するために使われるインターフェースは何ですか?
回答
error インターフェースは、Goでエラー状態を表現するための定義済みインターフェースです。エラーを説明する文字列を返す Error() メソッドを1つだけ持ちます。nil 値はエラーがないことを表します。これは標準ライブラリのすべてのパッケージとGo開発者がエラーを通知・伝播するために使う慣習的なインターフェースです。
2Goで静的なメッセージを持つシンプルなエラーを作成するにはどうしますか?
2
Goで静的なメッセージを持つシンプルなエラーを作成するにはどうしますか?
回答
errors パッケージの errors.New() 関数は、静的なメッセージを持つシンプルなエラーを作成します。指定されたメッセージで error インターフェースを実装した error 型を返します。このアプローチは、sentinel エラー(os.ErrNotExist のような定義済みエラー)や動的なコンテキストのないシンプルなエラーを作成するのに推奨されます。動的なメッセージには fmt.Errorf() を使用します。
3動的にフォーマットされたメッセージを持つエラーを作成できる関数はどれですか?
3
動的にフォーマットされたメッセージを持つエラーを作成できる関数はどれですか?
回答
fmt.Errorf() 関数は、フォーマット動詞(%s、%d、%v など)を使って動的にフォーマットされたメッセージを持つエラーを作成します。また、既存のエラーをラップするための特別な動詞 %w もサポートし、後で検査できるようにエラーチェーンを保持します。これは、元のエラーを保持しながらエラーにコンテキストを追加するための推奨される方法です。
4
fmt.Errorf() でエラーをラップできるフォーマット動詞はどれですか?
5
ラップされたエラーが特定のエラーと一致するかを確認できる関数はどれですか?
+17 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問Goroutine の基礎
Junior
20問Channels
Junior
22問Go Modules
Mid-Level
18問HTTP サーバー
Mid-Level
24問HTTPクライアント
Mid-Level
18問JSON エンコーディング
Mid-Level
20問Database/SQL
Mid-Level
22問context パッケージ
Mid-Level
20問Testing
Mid-Level
22問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
Mid-Level
20問REST API 設計
Mid-Level
20問gRPC
Mid-Level
22問Reflection
Senior
20問メモリ管理
Senior
24問パフォーマンス最適化
Senior
22問Generics
Senior
20問Go Design Patterns
Senior
24問Microservices
Senior
24問セキュリティと認証
Senior
24問Docker & Containerization
Senior
20問Kubernetes Basics
Senior
22問高度な Go
Senior
20問CLI開発
Senior
20問