golang學習筆記 錯誤處理與資源管理

2021-10-23 19:17:43 字數 4257 閱讀 4210

defer呼叫

package main

import

("bufio"

"fmt"

"os"

)func

trydefer()

}defer fmt.

println(1

)defer fmt.

println(2

) fmt.

println(3

)panic

("error ocurred"

)//往下的**不會被執行

fmt.

println(4

)//不會被執行

defer fmt.

println(5

)//不會被執行

}func

writefile

(filename string

)defer file.

close()

writer := bufio.

newwriter

(file)

defer writer.

flush()

f :=

fibonacci()

//相當於定義了乙個名為f的函式,裡面存有a,b兩個值,每執行一次,a、b的值都會發生變化

for i :=

0; i <

20; i++

}//斐波那契數列

func

fibonacci()

func()

int}

func

main()

錯誤處理
package main

import

("bufio"

"fmt"

"os"

)func

trydefer()

}defer fmt.

println(1

)defer fmt.

println(2

) fmt.

println(3

)panic

("error ocurred"

)//往下的**不會被執行

// fmt.println(4)

// defer fmt.println(5)

}func

writefile

(filename string

)else

fmt.

println

("error:"

, err.

error()

)return

}defer file.

close()

writer := bufio.

newwriter

(file)

defer writer.

flush()

f :=

fibonacci()

//相當於定義了乙個名為f的函式,裡面存有a,b兩個值,每執行一次,a、b的值都會發生變化

for i :=

0; i <

21; i++

}//斐波那契數列

func

fibonacci()

func()

int}

func

main()

伺服器統一出錯處理

nil}panic和recover

package main

import

("fmt"

"log"

)//trypanic : try to panic program

func

trypanic()

else}(

)// panic(errors.new("test panic and recover"))

panic

(123)}

func

main()

伺服器統一出錯處理2

Swift學習筆記 錯誤處理

錯誤分為可恢復的錯誤和不可恢復的錯誤,可恢復的錯誤指的是能預見並處理的錯誤,例如檔案不存在,網路連線失敗等 不可恢復的錯誤指的是一類特殊的bug,例如強制展開值為nil的可空例項,陣列越界訪問等 如果發生錯誤沒有處理,程式就會停止執行。遺憾的是swift中似乎只能處理可恢復的錯誤。swift中使用a...

python學習筆記 錯誤處理

程式中的錯誤處理有多種方式,一類是約定好錯誤碼,然後根據返回的錯誤碼來判斷是否發生錯誤,以及錯誤的原因。但是這麼做容易將正確的返回值和錯誤碼混在一起,必須要寫很多 來區分,非常不方便。另外一旦出錯,還需要一級一級往上報,知道有一級可以處理它。比較成熟的做法是try.except.finally.這一...

rust學習筆記 錯誤處理

rust的錯誤分兩種 rust提供了可恢復錯誤的型別result t,e 與不可恢復錯誤時終止執行的panic!巨集。程式會在panic!巨集執行時列印出一段錯誤提示資訊,展開並清理當前的呼叫棧,然後退出程式,這種情況大部分都發生在某個錯誤被檢測到,但程式設計師卻不知道該如何處理的時候。panic的...