Rumah >pembangunan bahagian belakang >Golang >cuba-tangkap-akhirnya dalam pengendalian pengecualian Golang
try-catch-finally dalam Go digunakan untuk pengendalian pengecualian Sintaksnya ialah: cuba: mengandungi kod yang perlu mengendalikan pengecualian Jika berlaku pengecualian, ia akan segera menangkap atau akhirnya. menangkap: Mengendalikan pengecualian yang dilemparkan dalam percubaan Jika tiada pengecualian, ia tidak akan dilaksanakan. akhirnya: Akan dilaksanakan tanpa mengira sama ada terdapat pengecualian, selalunya digunakan untuk membersihkan sumber.
Dalam bahasa Go, pernyataan try-catch-finally
digunakan untuk mengendalikan pengecualian. Berikut ialah sintaksnya: 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
akan segera menghentikan pelaksanaan dan aliran pelaksanaan akan pergi ke blok catch
atau blok finally
. 🎜catch
blok digunakan untuk mengendalikan pengecualian yang dilemparkan dalam blok try
. Jika kod dalam blok try
tidak memberikan pengecualian, blok catch
tidak akan dilaksanakan. Sintaks blok 🎜🎜catch
ialah: 🎜rrreeefinally
blok tanpa mengira sama ada blok try
melemparkan pengecualian atau tidak melaksanakan. Ia biasanya digunakan untuk membersihkan sumber atau melakukan operasi kemasan lain. 🎜🎜Sintaks blok akhirnya
ialah: 🎜rrreeeexisting_file.txt
. Jika fail wujud dan boleh dibaca dengan jayanya, blok try
akan dilaksanakan seperti biasa dan kandungan akan dicetak ke konsol. 🎜🎜 blok catch
digunakan untuk mengendalikan ralat yang mungkin berlaku dalam blok try
. Jika fail tidak wujud atau tidak boleh dibaca, blok try
akan membuang pengecualian dan pelaksanaan akan pergi ke blok catch
. Dalam blok catch
, pengecualian ditangkap dan dicetak ke konsol. 🎜🎜Blok akhirnya
adalah pilihan, tetapi ia boleh digunakan untuk melakukan operasi pembersihan seperti menutup pemegang fail. 🎜Atas ialah kandungan terperinci cuba-tangkap-akhirnya dalam pengendalian pengecualian Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!