首页
/
每日頭條
/
生活
/
chm編譯慢
chm編譯慢
更新时间:2025-09-13 09:44:28

chm編譯慢?Go中提供了兩種處理異常的方式type error interface{ Error() string },現在小編就來說說關于chm編譯慢?下面内容希望能幫助到你,我們來一起看看吧!

chm編譯慢(編寫好的錯誤處理)1

chm編譯慢

Go中提供了兩種處理異常的方式

  • 一種是程序發生異常時, 将異常信息反饋給使用者
  • 一種是程序發生異常時, 立刻退出終止程序繼續運行
1、Go的錯誤機制
  • Go沒有異常機制
  • error類型實現了error接口

type error interface{ Error() string }

Go語言中提供了兩種創建異常信息的方式

  • 方式一: 可以通過errors.News來快速創建錯誤實例

errors.New("n must be in the range [0,10]")

package error_Test import ( "errors" "testing" ) func GetFibonacci(n int) ([]int, error) { if n < 2 || n > 100 { // 設置error返回 return nil, errors.New("n's should be in [2,100]") } fibList := []int{1, 1} for i := 2; i < n; i { fibList = append(fibList, fibList[i-2] fibList[i-1]) } return fibList, nil } func TestGetFibonacci(t *testing.T) { if v, err := GetFibonacci(-10); err != nil { t.Error(err) } else { t.Log(v) } }

  • 方式二: 通過fmt包中的Errorf函數創建錯誤信息, 然後打印

package main import "fmt" func main() { // 1.創建錯誤信息 var err error = fmt.Errorf("這裡是錯誤信息") // 2.打印錯誤信息 fmt.Println(err) // 這裡是錯誤信息 }

2、創建異常信息實現原理解析
  • Go語言中創建異常信息其實都是通過一個error接口實現的
  • Go語言再builtin包中定義了一個名稱叫做error的接口,源碼如下

package builtin // 定義了一個名稱叫做error的接口 // 接口中聲明了一個叫做Error() 的方法 type error interface { Error() string }

  • 在errors包中定義了一個名稱叫做做errorString的結構體, 利用這個結構體實現了error接口中指定的方法
  • 并且在errors 包中還提供了一個New方法, 用于創建實現了error接口的結構體對象, 并且在創建時就會把指定的字符串傳遞給這個結構體

// 指定包名為errors package errors // 定義了一個名稱叫做errorString的結構體, 裡面有一個字符串類型屬性s type errorString struct { s string } // 實現了error接口中的Error方法 // 内部直接将結構體中保存的字符串返回 func (e *errorString) Error() string { return e.s } // 定義了一個New函數, 用于創建異常信息 // 注意: New函數的返回值是一個接口類型 func New(text string) error { // 返回一個創建好的errorString結構體地址 return &errorString{text} }

  • fmt包中Errorf底層的實現原理其實就是在内部自動調用了errors包中的New函數

func Errorf(format string, a ...interface{}) error { return errors.New(Sprintf(format, a...)) }

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
太行山寫生感觸
太行山寫生感觸
​太行山綿延不絕的山脈雄渾而巍峨,絕非其它綿延的丘陵可比,猶如神龍見首而不見尾。遙望,千峰競秀,萬壑争奇;仰視,兩相對峙,有時甚或覺得兩廂之間觸手可及;俯瞰,竟有山高人為峰之感;縱觀,巍巍太行,蒼凝深邃。這裡的美無法用文字述盡,這裡的美無法...
2025-09-13
柯南與服部平次的第一次相遇
柯南與服部平次的第一次相遇
和葉和服部相互表白的瞬間,要是可以輕易說出口,柯南也不會出1000集了!看了柯南這麼久,吸引我們的不僅僅是緊張刺激的破案過程,還有就是非常有趣的人物關系!柯南有一個非常神奇的設定,那就是青梅竹馬,比如小蘭和新一,服部和和葉,基德和青子。服部...
2025-09-13
碧血丹心英雄魂
碧血丹心英雄魂
碧血丹心英雄魂?來源:人民網-人民日報海外版“黃河遠上白雲間,一片孤城萬仞山羌笛何須怨楊柳,春風不度玉門關”許多年前,在讀到王之渙的這首詩時,一座遙不可及的塞外雄關就牢牢澆鑄在了我的心頭我想,有朝一日必得親赴現場感受一番,我來為大家講解一下...
2025-09-13
鋁模爬架有腰線層嗎
鋁模爬架有腰線層嗎
關于鋁膜、爬架施工的造價分析摘要:近年來,中國經濟飛速發展,建築行業的新技術、新工藝、新材料、新設備層出不窮,同時随着建造行業工業化的不斷推行,爬架搭配鋁膜的施工配置開始進入大衆視野。鋁膜在實際應用中觀感效果好,二次結構能實現薄抹灰甚至零抹...
2025-09-13
我最喜歡的唐人詩
我最喜歡的唐人詩
​​初夏七絕桐子花香沾水珠,暖陽樹下透涼舒。池邊小鳥斜枝立,棕葉芭蕉橫細竹。野菊花七絕村邊溪畔野菊花,翡翠斜坡飄燦霞。簇簇割來籃子滿,開心歸去泡涼茶。樹(七古)新芽淺淺柳眉彎,閃閃銀鈎枝丫穿。晨光萬縷樹縫透,一夜春風換綠衫。​龜古絕黑白兩隻...
2025-09-13
Copyright 2023-2025 - www.tftnews.com All Rights Reserved