Golang 예외 처리의 try-catch-finally

PHPz
풀어 주다: 2024-04-16 08:48:02
원래의
1134명이 탐색했습니다.

try-catch-finally는 예외 처리에 사용됩니다. 구문은 다음과 같습니다. try: 예외가 발생하면 즉시 catch 또는 finally로 이동합니다. catch: try에서 발생한 예외를 처리합니다. 예외가 없으면 실행되지 않습니다. finally: 예외 발생 여부에 관계없이 실행되며 리소스를 정리하는 데 자주 사용됩니다.

Golang 예외 처리의 try-catch-finally

Golang 예외 처리의 try-catch-finally

Go 언어에서는 try-catch-finally 문을 사용하여 예외를 처리합니다. 구문은 다음과 같습니다. try-catch-finally 语句用于处理异常情况。以下是其语法:

func try() {
    defer recover() // 可选,用于捕获恐慌异常
    ... // 你的需要处理异常的代码
}
로그인 후 복사

try

try 块包含需要处理异常的代码。如果出现异常,try 块中的语句将立即停止执行,并且执行流将转到 catch 块或 finally 块。

catch

catch 块用于处理 try 块中抛出的异常。如果 try 块中的代码没有抛出异常,则不会执行 catch 块。

catch 块的语法为:

func catch() {
    r := recover() // 捕获 `try` 块中的恐慌异常
    ... // 处理异常的代码
}
로그인 후 복사

finally

finally 块无论 try 块是否抛出异常都会执行。它通常用于清理资源或执行其他收尾操作。

finally 块的语法为:

func finally() {
    ... // 清理资源或执行其他收尾操作
}
로그인 후 복사

实战案例

以下是一个处理文件读取异常的示例:

import (
    "fmt"
    "io/ioutil"
)

func readFile(filename string) {
    defer recover()

    contents, err := ioutil.ReadFile(filename)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(contents))
}

func main() {
    readFile("existing_file.txt")
    readFile("non_existing_file.txt")
}
로그인 후 복사

在这个示例中,try 块包含读取文件 existing_file.txt 的代码。如果文件存在并且可以成功读取,则 try 块将正常执行,并且内容将被打印到控制台。

catch 块用于处理 try 块中可能发生的错误。如果文件不存在或无法读取,try 块将抛出一个异常,并且执行将转到 catch 块。在 catch 块中,异常被捕获,并打印到控制台。

finallyrrreee

try

try 블록에는 예외를 처리하는 데 필요한 코드가 포함되어 있습니다. 예외가 발생하면 try 블록의 문은 즉시 실행을 중지하고 실행 흐름은 catch 블록 또는 finally 블록으로 이동합니다. 🎜

catch

🎜catch 블록은 try 블록에서 발생한 예외를 처리하는 데 사용됩니다. try 블록의 코드가 예외를 발생시키지 않으면 catch 블록은 실행되지 않습니다. 🎜🎜catch 블록의 구문은 try 블록 여부에 관계없이 🎜rrreee

finally

🎜finally 블록입니다. 예외가 발생하거나 구현되지 않습니다. 일반적으로 리소스를 정리하거나 기타 마무리 작업을 수행하는 데 사용됩니다. 🎜🎜finally 블록의 구문은 다음과 같습니다. 🎜rrreee

실제 사례

🎜다음은 파일 읽기 예외 처리의 예입니다. 🎜rrreee🎜이 예에서는 try 블록에는 existing_file.txt 파일을 읽는 코드가 포함되어 있습니다. 파일이 존재하고 성공적으로 읽을 수 있으면 try 블록이 정상적으로 실행되고 내용이 콘솔에 인쇄됩니다. 🎜🎜catch 블록은 try 블록에서 발생할 수 있는 오류를 처리하는 데 사용됩니다. 파일이 존재하지 않거나 읽을 수 없는 경우 try 블록에서 예외가 발생하고 실행은 catch 블록으로 이동됩니다. catch 블록에서 예외가 포착되어 콘솔에 인쇄됩니다. 🎜🎜finally 블록은 선택 사항이지만 파일 핸들 닫기와 같은 정리 작업을 수행하는 데 사용할 수 있습니다. 🎜

위 내용은 Golang 예외 처리의 try-catch-finally의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿