2012年3月3日 星期六

錯誤碼解法

身為一個程式設計師

在其一生當中或多或少(不可能沒有)在寫程式時遇到錯誤的情況

常常看到"XXXXXX,錯誤碼為:XXXX"之類的情況

很理所當然的就是上網找看看別人遇到一樣的問題怎麼解決

偏偏中文資料少之又少

有中文的偏偏只有講解法卻沒有詳細說明原因

又或者是對你是無解的

像小弟我都是先知道該錯誤碼是什麼問題

再用那個問題去搜索

這樣比較容易找到解法

又或者是將中文註解轉英文去找

找到的資料再轉成中文來看(英文爛也是無解題....)

這邊就來介紹一下幾個方便查詢錯誤碼解法的東西:

錯誤碼查詢工具:Exchange Server Error Code Look-up

下載的是一個自動解壓縮的執行檔
解壓縮後在你指定路徑後有Err.exe
此為指令列執行檔,請由命令提示字元去執行
只要輸入err xxx(xxx為錯誤碼)即可查出此錯誤碼的相關資訊,例如:

如上圖示
編號 1 是 Err.exe 在哪個 Header 檔案中找到錯誤碼的定義
編號 2 是找到的常數定義
編號 3 是對應的註解,而這個註解正是可以幫我們更容易利用 Google 大神找到解答的關鍵!
如果你得到的錯誤碼是 16 進位,也是可以查詢的,例如:err 0xb7
其實有很多查詢格式,提供不同產品或事件檢視器中得到的錯誤碼,如下:
Decorated hex (0x54f)
Implicit hex (54f)
Ambiguous (1359)
Exact string (=ERROR_INTERNAL_ERROR)
Substring (:INTERNAL_ERROR)


VS內建錯誤碼查詢工具:errlook.exe

這是安裝VS就有提供的好用工具
路徑為下:
VS2003
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\errlook.exe

VS2005
C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\errlook.exe

VS2008
C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\errlook.exe

VS2010
C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\errlook.exe

errlook是有圖形介面(GUI)的查詢工具,內建於VS中又很方便查詢,只要有安裝VS就可以不必額外安裝,如下圖:
Error Lookup


上面介紹了2個查詢工具
這邊來做一下優缺點分析
(註:若VS安裝的是中文版,而errlook就會是中文介面)
工具名稱優點缺點
Exchange Server
Error Code
Look-up
1.查詢結果相當詳細
2.註解不用翻譯成微軟原文
1.需下載
2.需使用命令提示字元執行
3.英文描述
errlook1.內建免下載
2.GUI介面方便使用
3.中文描述易懂
1.註解需翻譯成微軟原文較易網路上搜索國外解法
2.查詢結果只有描述,無其他詳細資訊

以上介紹了好用的查詢錯誤碼工具,再來我們就需要將查詢到的資訊轉成微軟原文,這樣上網找英文資料時才可以更為正確與快速,下面為連結網址:

微軟語言入口


這邊可以將我們取得的錯誤碼資訊翻譯成各國語言
註:原文若選擇英文以外的語言,則會強制轉成英文,想再轉其他語言,需用轉出來的英文再去轉一次

範例1:
錯誤碼183取得的訊息為"當檔案已存在時,無法建立該檔案。"
轉換後得到結果為:
英文譯文產品
Cannot create a file when that file already exists.當檔案已存在時,無法建立該檔案。Windows Server 2008
Cannot create a file when that file already exists.當檔案已存在時,無法建立該檔案。Windows Vista SP1
Cannot create a file when that file already exists.當檔案已存在時,無法建立該檔案。Windows Server 2003 SP1
Cannot create a file when that file already exists.當檔案已存在時,無法建立該檔案。Windows Vista
Cannot create a file when that file already exists.\r\n當檔案已存在時,無法建立該檔案。\r\nWindows 7

範例2:
建立具有整合式安全性的連接時 SSPI 交握失敗,其錯誤碼為 0x8009030c; 此連接已經關閉。
這是一個SQL Server 連線問題,0x8009030c很明顯的就是一個變數,所以這邊取中文描述就好去搜索就好。
轉換結果:
英文譯文產品
SSPI handshake failed with error code 0x%1!s! while establishing a connection with integrated security; the connection has been closed.%2!s!建立具有整合式安全性的連接時 SSPI 交握失敗,其錯誤碼為 0x%1!s!; 此連接已經關閉。%2!s!SQL Server 2008
SSPI handshake failed with error code 0x%1!s!, state %2!s! while establishing a connection with integrated security; the connection has been closed. Reason: %3!s! %4!s!. \r\n建立具有整合式安全性的連接時 SSPI 交握失敗,錯誤碼為 0x%1!s!,狀態為 %2!s!; 此連接已經關閉。原因: %3!s! %4!s!。\r\nSQL Server 2008 R2

回首頁

沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...