Go 言語は、次の 2 つのエラー処理メカニズムを提供します。 1. エラー処理: err パラメータを使用してエラーを返します。呼び出し側はそれを明示的に処理する必要があります。 2. 例外処理: パニック() 関数と回復() 関数を使用します。例外を発生させてキャプチャします。実際のシナリオ: エラー処理はファイル操作によく使用され (nil を返すと成功を示し、ゼロ以外の値はエラーを示します)、例外処理はネットワーク リクエストに適しています (エラーが発生すると例外がスローされます)。
Go 言語のエラー処理と例外処理: 比較と実践
Go 言語には、関数内のエラーを処理するための 2 つの主要なメカニズムが用意されています。 : エラー処理と例外処理。これらにはさまざまな機能と適用可能なシナリオがあり、堅牢で保守可能なコードを作成するには、それらの違いを理解することが重要です。
エラー処理
エラー処理は、err
パラメーターを使用して関数からエラーを返すことによって実行されます。通常、エラーは値 nil
で表されるか、エラーが発生した場合はゼロ以外の値で表されます。
func myFunction() error { // ... 进行一些操作 if err != nil { return err } // 返回 nil 表示没有发生错误 return nil }
err
パラメーターを使用して関数を呼び出す場合は、エラーを明示的にチェックし、必要に応じて処理する必要があります。
err := myFunction() if err != nil { // 处理错误 }
例外処理
例外処理では、panic()
関数と recover()
関数を使用します。 panic()
は例外をスローし、recover()
は例外をキャッチして処理できます。
func myFunction() { // ... 进行一些操作 if condition { panic("发生了错误") } } func main() { defer func() { if err := recover(); err != nil { // 处理异常 } } myFunction() }
実際的なケース
エラー処理: ファイルを開く関数は、成功を示す nil
を返します。 -zero 値はエラーを示します。
func openFile(filename string) (*os.File, error) { file, err := os.Open(filename) if err != nil { return nil, err } return file, nil }
例外処理: ネットワーク要求を実行し、エラーが発生した場合に例外をスローする関数。
rree以上がgolang関数におけるエラー処理と例外処理の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。