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的...