工具說明:
遊戲服務端採用golang語言, 而前端unity是csharp.
在定義通訊訊息錯誤碼時, 為了避免前後端不一致同時不用寫2份錯誤碼列舉檔案的麻煩.
統一把錯誤碼定義寫在文字檔案中,使用該生成工具生成對應的cs和go檔案供c/s端用.
錯誤碼定義的文字檔案結構:
最終生成的cs檔案:
生成的go檔案:
下面貼入golang原始碼:
package main
import (
"text/template"
"os"
"fmt"
"io"
"bufio"
"strings"
"path/filepath"
"log"
"time"
)const (
errorenumname = "errtype"
errorclassname = "errorcodemanager"
errorpackagename = "errorcode"
authorinfo = "fox"
)type errordata struct
type errormodel struct
func main()
var datas errordata
datas,err =paseerrorcodetext(contents)
if err !=nil
model := errormodel{}
model.enumname = errorenumname
model.managername = errorclassname
model.authorinfo = authorinfo
model.packagename = errorpackagename
model.gentime = time.now().string()
model.items = datas
err = generatecsfile(model)
if err !=nil
err = generategofile(model)
if err !=nil
fmt.println("生成成功,任意鍵退出...")
fmt.scanln()
}//載入錯誤碼文字
func loadfile(path string)(string,error)
defer fi.close()
var temp string
br := bufio.newreader(fi)
forif len(a) >0
}return temp,nil
}//解析文字
func paseerrorcodetext(contents string)(errordata,error)
//idx1 := strings.index(str,"=")
//idx2 := strings.index(str,"//")
name := sli[0]
id := sli[1]
content := sli[2]
var data = errordata
fmt.println(name,id,content)
}return datas , nil
}//生成cs檔案
func generatecsfile(model errormodel)error}
*/public enum }}
} = } , //}
}}public static class }}
case (int)}.}: return "}";}}
return "沒有該錯誤碼對應資訊! errcode:" + errcode;
}}`teml,err := template.new("cstemplate").parse(csstr)
if err !=nil
fl, err := os.create(getcurpath()+"/errorcode.cs")
defer fl.close()
if err != nil
err = teml.execute(fl,model)
if err != nil
fl.sync()
return nil
}//生成go檔案
func generategofile(model errormodel)error}
*/
package }
const (
}} = } //}
})`teml,err := template.new("gotemplate").parse(gostr)
if err !=nil
fl, err := os.create(getcurpath()+"/errorcode.go")
defer fl.close()
if err != nil
err = teml.execute(fl,model)
if err != nil
fl.sync()
return nil
}//獲取當前執行檔案路徑
func getcurpath()string
return strings.replace(dir, "\\", "/", -1) //將\替換成/
}
效果:
使用說明:
1.拷貝上面的golang**並儲存,在該檔案所在目錄開啟cmd命令列工具, 執行: go build ***x.go 即可生成exe檔案
2.把你的錯誤碼定義文字 放在exe同級目錄下,執行exe檔案.
工程:
錯誤碼 使用 Go 定義錯誤碼
不管在什麼系統中,定義錯誤碼都是必不可少的.錯誤碼可以幫助定義問題,通常錯誤碼設計為某種模式結構,可以判斷出錯誤的級別,錯誤的模組和具體錯誤資訊.乙個良好結構的錯誤碼有助於簡化問題描述,當前設計的錯誤碼共有五位,結構如下 1 00 01 服務級別 模組 具體錯誤 第一位是服務級別,1 為系統錯誤,2...
HTTP的錯誤碼
錯誤碼 1xx 資訊提示 這些狀態 表示臨時的響應。客戶端在收到常規響應之前,應準備接收乙個或多個1xx響應。100 繼續。101 切換協議。2xx 成功 這類狀態 表明伺服器成功地接受了客戶端請求。200 確定。客戶端請求已成功。201 已建立。202 已接受。203 非權威性資訊。204 無內容...
常見的錯誤碼
一些常見的狀態碼為 200 伺服器成功返回網頁 404 請求的網頁不存在 503 服務不可用 詳細分解 1xx 臨時響應 表示臨時響應並需要請求者繼續執行操作的狀態 說明 100 繼續 請求者應當繼續提出請求。伺服器返回此 表示已收到請求的第一部分,正在等待其餘部分。101 切換協議 請求者已要求伺...