try-catch-finally는 예외 처리에 사용됩니다. 구문은 다음과 같습니다. try: 예외가 발생하면 즉시 catch 또는 finally로 이동합니다. catch: try에서 발생한 예외를 처리합니다. 예외가 없으면 실행되지 않습니다. finally: 예외 발생 여부에 관계없이 실행되며 리소스를 정리하는 데 자주 사용됩니다.
Go 언어에서는 try-catch-finally
문을 사용하여 예외를 처리합니다. 구문은 다음과 같습니다. try-catch-finally
语句用于处理异常情况。以下是其语法:
func try() { defer recover() // 可选,用于捕获恐慌异常 ... // 你的需要处理异常的代码 }
try
块包含需要处理异常的代码。如果出现异常,try
块中的语句将立即停止执行,并且执行流将转到 catch
块或 finally
块。
catch
块用于处理 try
块中抛出的异常。如果 try
块中的代码没有抛出异常,则不会执行 catch
块。
catch
块的语法为:
func catch() { r := recover() // 捕获 `try` 块中的恐慌异常 ... // 处理异常的代码 }
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
块中,异常被捕获,并打印到控制台。
finally
rrreee
try
블록에는 예외를 처리하는 데 필요한 코드가 포함되어 있습니다. 예외가 발생하면 try
블록의 문은 즉시 실행을 중지하고 실행 흐름은 catch
블록 또는 finally
블록으로 이동합니다. 🎜catch
블록은 try
블록에서 발생한 예외를 처리하는 데 사용됩니다. try
블록의 코드가 예외를 발생시키지 않으면 catch
블록은 실행되지 않습니다. 🎜🎜catch
블록의 구문은 try
블록 여부에 관계없이 🎜rrreeefinally
블록입니다. 예외가 발생하거나 구현되지 않습니다. 일반적으로 리소스를 정리하거나 기타 마무리 작업을 수행하는 데 사용됩니다. 🎜🎜finally
블록의 구문은 다음과 같습니다. 🎜rrreee try
블록에는 existing_file.txt
파일을 읽는 코드가 포함되어 있습니다. 파일이 존재하고 성공적으로 읽을 수 있으면 try
블록이 정상적으로 실행되고 내용이 콘솔에 인쇄됩니다. 🎜🎜catch
블록은 try
블록에서 발생할 수 있는 오류를 처리하는 데 사용됩니다. 파일이 존재하지 않거나 읽을 수 없는 경우 try
블록에서 예외가 발생하고 실행은 catch
블록으로 이동됩니다. catch
블록에서 예외가 포착되어 콘솔에 인쇄됩니다. 🎜🎜finally
블록은 선택 사항이지만 파일 핸들 닫기와 같은 정리 작업을 수행하는 데 사용할 수 있습니다. 🎜위 내용은 Golang 예외 처리의 try-catch-finally의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!