Synopsis
隨便舉個例子,如何使用 error handle in golang
1 |
|
- 在此程式碼中,會直接在
log.Fatal
直接中斷,這是一個無法繼續下去的範例 - Q : How to keep working? with error handle.
panic(), defer, and recover()
- 在之前的文章中 Defer,Panic,Recover ,可以透過此機制,取得錯誤資訊,並透過 recover() 讓程式碼繼續執行
- 如何應用在此範例中?
利用 panic, defer, recover 重構步驟
- 將
file, err := os.Open("file.txt")
, 建立另一個 func(), 放入其中 - 建立 errorHandle(), 並在 (1) 中的 func(), 利用 defer 進行呼叫
1 |
|
- Q : 如何在錯誤中,得知,這是哪一個 func 造成的錯誤?
Q : 如何在錯誤中,得知,這是哪一個 func 造成的錯誤?
1 |
|
- Q : 如何讓程式碼看起來像是 try{}catch{} 般使用?
Q : 如何讓程式碼看起來像是 try{}catch{} 般使用?
利用
type errorHandle func()
以下是片段程式碼, 可以改成func try(action, catch)
的方式, 可能更適合某些人
1 |
|
- Q : 上述範例是利用 open 後產生的錯誤訊息,但如何自訂義錯誤?
Q : 上述範例是利用 open 後產生的錯誤訊息,但如何自訂義錯誤?
1 |
|
final example code
1 |
|