golang のエラーの種類について説明する記事

PHPz
リリース: 2023-04-13 18:39:52
オリジナル
892 人が閲覧しました

Golang は、誕生以来プログラマーに愛されてきた強力なプログラミング言語です。エラー処理メカニズムも Golang の非常に重要なモジュールです。この記事では、Golang のエラーの種類に焦点を当てます。

Golang では、エラー タイプは組み込みインターフェイス タイプのエラーを指します。定義するカスタム エラー タイプは、エラー タイプを使用して処理する前に、このインターフェイスを満たす必要があります。エラー タイプは次のように定義されます。

type error interface {
    Error() string
}
ログイン後にコピー

エラー タイプには、文字列タイプのエラー メッセージを返す Error() メソッドというメソッドが 1 つだけあります。 Golang のすべてのエラー タイプは、エラー タイプとして使用する前にエラー インターフェイスを実装する必要があります。

カスタム エラー タイプに加えて、Golang はいくつかの一般的なエラー タイプも事前定義しています。

  1. 一般的なエラー タイプ

一般的なエラー タイプとは、追加情報を必要としないエラーを指します。 Golang では、errors.New() 関数を使用して通常のエラー タイプを作成できます。例:

import "errors"  
func divideByZero(a, b int) (int, error) {  
    if b == 0 {
        return 0, errors.New("除数不能为0")  
    }
    return a / b, nil  
}
ログイン後にコピー

上記のコードでは、除数が 0 の場合、文字列「除数を 0 にすることはできません」を含む一般的なエラー タイプが返されます。

  1. カスタム エラー タイプ

カスタム エラー タイプとは、エラー メッセージに追加情報を追加する必要があるエラー タイプを指します。 Golang では、次の方法で定義できます。

type myError struct {  
    Op       string  
    Operand  string  
    message  string  
}  
func (e *myError) Error() string {  
    return fmt.Sprintf("%s %s %s", e.Op, e.Operand, e.message)  
}  
func operate(a, b int, op string) (int, error) {  
    if op != "+" && op != "-" && op != "*" && op != "/" {  
        return 0, &myError{"operate", op, "不支持的操作"}  
    }  
    if op == "/" && b == 0 {  
        return 0, &myError{"operate", op, "除数不能为0"}  
    }  
    var res int  
    switch op {  
    case "+":
        res = a + b  
    case "-":
        res = a - b  
    case "*":
        res = a * b  
    case "/":
        res = a / b  
    }  
    return res, nil  
}
ログイン後にコピー

上記のコードでは、操作とエラーの情報を含むカスタム エラー タイプ myError を定義します。さらに、追加情報を含むエラー メッセージを返す Error() メソッドを実装しました。演算関数では、演算がサポートされていない場合、または除数が 0 の場合、カスタム エラー タイプが返されます。

  1. パニック エラー タイプ

Golang では、panic() 関数を使用して例外をスローします。この時点で、プログラムは実行を停止し、後続のコードは実行されません。実際には、panic() 関数の内部実装によってパニック エラー タイプが作成され、トリガーされます。例:

func factorial(n int) int {  
    if n < 0 {  
        panic("参数必须为非负整数")  
    }  
    if n == 0 {  
        return 1  
    }  
    return n * factorial(n-1)  
}
ログイン後にコピー

上記のコードでは、渡されたパラメーターが負の数値の場合、プログラムはパニック エラー タイプをスローし、実行を停止します。

プログラム内のエラー処理は非常に重要であり、プログラムの安定性とセキュリティを確保することができます。 Golang ではエラーの種類によって処理方法が異なるため、プログラマは実際の状況に応じて適切なエラーの種類を選択する必要があります。

以上がgolang のエラーの種類について説明する記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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