<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go 面試題 004:Go 有異常類型嗎?

          共 880字,需瀏覽 2分鐘

           ·

          2021-09-28 09:29

          大家好,我是明哥。

          歡迎大家再次來到  Go 語言面試題庫 這個專欄

          本專欄內(nèi)容,已經(jīng)上傳 github:https://github.com/iswbm/golang-interview

          請大家?guī)蛶兔θc(diǎn)個小 ??,在那里我對題庫進(jìn)行了分類整理

           

          第四題

          請聽題:

          Go 有異常類型嗎?

           

          在解答這個問題前,有必要對錯誤和異常做一個解釋

          • 錯誤:指的是可能出現(xiàn)問題的地方出現(xiàn)了問題,比如打開一個文件時失敗,這種情況在人們的意料之中 ;

          • 異常:指的是不應(yīng)該出現(xiàn)問題的地方出現(xiàn)了問題,比如引用了空指針,這種情況在人們的意料之外。

          在 Go 沒有異常類型,只有錯誤類型(Error)。

          一個函數(shù)要是想返回錯誤,通常會使用返回值來表示異常狀態(tài),它很像 C語言中的錯誤碼,可逐層返回,直到被處理。

          f, err := os.Open("test.txt")
          if err != nil {
              log.Fatal(err)
          }

          Go 語言中雖然沒有異常的概念,但是卻有更為恐怖的 panic ,由于有了 recover,在一定程度上, panic 可以類比做異常。

          Golang錯誤和異常(panic)是可以互相轉(zhuǎn)換的:

          1. 錯誤轉(zhuǎn)異常:比如程序邏輯上嘗試請求某個URL,最多嘗試三次,嘗試三次的過程中請求失敗是錯誤,嘗試完第三次還不成功的話,失敗就被提升為異常了。

          2. 異常轉(zhuǎn)錯誤:比如panic觸發(fā)的異常被recover恢復(fù)后,將返回值中error類型的變量進(jìn)行賦值,以便上層函數(shù)繼續(xù)走錯誤處理流程。


             


          喜歡明哥文章的同學(xué)
          歡迎長按下圖訂閱!

          ???


          瀏覽 189
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩免费中文字幕 | 超碰在线国产 | 亚洲黄色电影在线免费观看 | 国产偷人精品高潮露脸 | 天天干天天操天天射 |