Maison  >  Article  >  développement back-end  >  Étendre les capacités de gestion des exceptions de Golang

Étendre les capacités de gestion des exceptions de Golang

PHPz
PHPzoriginal
2024-04-15 17:54:011021parcourir

Les moyens d'étendre les capacités de gestion des exceptions de Go incluent la définition de types d'erreurs personnalisés pour fournir des informations supplémentaires. Utilisez le mot-clé panic pour lever une exception afin d'interrompre le programme et de transmettre une valeur d'erreur. Écrivez un gestionnaire d'erreurs à l'aide de la fonction de récupération pour gérer les exceptions levées et reprendre l'exécution du programme.

Étendre les capacités de gestion des exceptions de Golang

Capacités étendues de gestion des exceptions Go

Le mécanisme de gestion des exceptions du langage Go fournit un moyen simple et efficace de gérer les erreurs d'exécution. Cependant, son comportement par défaut peut être trop limité pour certains scénarios. Cet article examinera certaines façons d'étendre les capacités de gestion des exceptions de Go, notamment en utilisant des types d'erreurs personnalisés, en lançant des exceptions et en écrivant des gestionnaires d'erreurs.

Types d'erreur personnalisés

Le langage Go vous permet de définir vos propres types d'erreur, ce qui peut contribuer à améliorer la lisibilité et la maintenabilité de votre code. Les types d’erreur personnalisés peuvent contenir des informations supplémentaires pour faciliter le débogage et le dépannage.

type MyError struct {
    msg string
}

func (e MyError) Error() string {
    return e.msg
}

func someFunc() (int, error) {
    if somethingWrong {
        return 0, MyError{"Something went wrong!"}
    }
    return 1, nil
}

Lance d'exceptions

Dans Go, le mot-clé panic est utilisé pour lancer des exceptions. Les exceptions interrompent l'exécution normale du programme et transmettent une valeur pour indiquer l'erreur. panic 关键字用于抛出异常。异常会中断程序的正常执行,并传递一个值来表示错误。

func someFunc() {
    if somethingWrong {
        panic("Something went wrong!")
    }
}

编写错误处理程序

Go 语言提供了 recover 函数来恢复从异常中抛出的错误。它可以将异常转换为 error

func main() {
    defer func() {
        if err := recover(); err != nil {
            // 处理错误
        }
    }()

    someFunc()
}

Writing Error Handlers

Le langage Go fournit la fonction recover pour récupérer les erreurs générées par les exceptions. Il convertit les exceptions en type error et permet au programme de les gérer.

package main

import (
    "fmt"
    "net/http"
)

type ServerError struct {
    code    int
    message string
}

func (e ServerError) Error() string {
    return fmt.Sprintf("Error %d: %s", e.code, e.message)
}

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        if somethingWrong {
            http.Error(w, "Internal Server Error", http.StatusInternalServerError)
            return
        }

        // 其它代码
    })

    http.ListenAndServe(":8080", nil)
}

Un cas pratique

🎜🎜Ce qui suit est un cas pratique qui montre comment utiliser des types d'erreurs personnalisés et des gestionnaires d'erreurs pour gérer les erreurs dans un serveur Web : 🎜rrreee🎜En étendant les capacités de gestion des exceptions de Go, vous pouvez créer des , des applications plus maintenables. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn