ホームページ > バックエンド開発 > Golang > 読みやすさと簡潔さのために Go のエラー処理をどのように改善できるでしょうか?

読みやすさと簡潔さのために Go のエラー処理をどのように改善できるでしょうか?

DDD
リリース: 2024-11-26 05:00:10
オリジナル
432 人が閲覧しました

How Can Go's Error Handling Be Improved for Readability and Conciseness?

Go でのエラー処理

Go でのエラー処理は、プログラミングの重要な側面です。この言語では直接的なエラー チェックと処理が奨励されており、冗長なコード処理エラーが繰り返し発生する可能性があります。

「Hello world!」をパイプする次の不自然な例を考えてみましょう。

package main

import "fmt"
import "io"
import "io/ioutil"
import "os/exec"


func main() {
    cmd := exec.Command("cat", "-")
    stdin, err := cmd.StdinPipe()
    if err != nil {
        return
    }
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        return
    }
    err = cmd.Start()
    if err != nil {
        return
    }
    _, err = io.WriteString(stdin, "Hello world!")
    if err != nil {
        return
    }
    err = stdin.Close();
    if err != nil {
        return
    }
    output, err := ioutil.ReadAll(stdout)
    if err != nil {
        return
    }
    fmt.Println(string(output))
    return
}
ログイン後にコピー

この例には、操作ごとに複数行のエラー処理コードがあります。

Go の慣用的なアプローチは、集中的な方法でエラーを処理することです。たとえば、内部でエラーを管理するカスタム関数にパイプ操作をカプセル化できます。

package main

import (
    "fmt"
    "io"
    "io/ioutil"
    "os"
    "os/exec"
)

func piping(input string) (string, error) {
    cmd := exec.Command("cat", "-")
    stdin, err := cmd.StdinPipe()
    if err != nil {
        return "", err
    }
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        return "", err
    }
    err = cmd.Start()
    if err != nil {
        return "", err
    }
    _, err = io.WriteString(stdin, input)
    if err != nil {
        return "", err
    }
    err = stdin.Close()
    if err != nil {
        return "", err
    }
    all, err := ioutil.ReadAll(stdout)
    output := string(all)
    if err != nil {
        return output, err
    }
    return output, nil
}

func main() {
    in := "Hello world!"
    fmt.Println(in)
    out, err := piping(in)
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
    fmt.Println(out)
}
ログイン後にコピー

このアプローチにより、main 関数内のエラー処理コードの量が減り、より簡潔で読みやすくなります。 .

以上が読みやすさと簡潔さのために Go のエラー処理をどのように改善できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート