11 出錯資訊的處理

2021-03-31 08:56:30 字數 1470 閱讀 1061

—————————

你會處理出錯資訊嗎?哦,它並不是簡單的輸出。看下面的示例:

if ( p == null )

告別學生時代的程式設計吧。這種程式設計很不利於維護和管理,出錯資訊或是提示資訊,應該統一處理,而不是像上面這樣,寫成乙個「硬編碼」。第10條對這方面的處理做了一部分說明。如果要管理錯誤資訊,那就要有以下的處理:

/* 宣告出錯** */

#define     err_no_error    0  /* no error                 */

#define     err_open_file   1  /* open file error          */

#define     err_send_mesg   2  /* sending a message error  */

#define     err_bad_args    3  /* bad arguments            */

#define     err_mem_none    4  /* memeroy is not enough    */

#define     err_serv_down   5  /* service down try later   */

#define     err_unknow_info 6  /* unknow information       */

#define     err_socket_err  7  /* socket operation failed  */

#define     err_permission  8  /* permission denied        */

#define     err_bad_format  9  /* bad configuration file   */

#define     err_time_out   10  /* ***munication time out   */

/* 宣告出錯資訊 */

char* errmsg = ;

/* 宣告錯誤**全域性變數 */

long errno = 0;

/* 列印出錯資訊函式 */

void perror( char* info)

printf("error: %s/n", errmsg[errno] );

}這個基本上是ansi的錯誤處理實現細節了,於是當你程式中有錯誤時你就可以這樣處理:

bool checkpermission( char* username )

...}

main()

...}

乙個即有共性,也有個性的錯誤資訊處理,這樣做有利同種錯誤出一樣的資訊,統一使用者介面,而不會因為檔案開啟失敗,a程式設計師出乙個資訊,b程式設計師又出乙個資訊。而且這樣做,非常容易維護。**也易讀。

當然,物極必反,也沒有必要把所有的輸出都放到errmsg中,抽取比較重要的出錯資訊或是提示資訊是其關鍵,但即使這樣,這也包括了大多數的資訊。

Oracle登陸出錯 11 19

一 登陸oracle時提示錯誤,oracle initialization or shutdown in process 二 後面用命令視窗 sqlplus nolog 登陸時提示協議介面卡錯誤,網上搜了下方法,用第三條解決了 1.監聽服務沒有起起來。windows平台個一如下操作 開始 程式 管理...

001 出錯處理

函式strerror 1.1 函式原型 char strerror int errnum 分析 此函式將errnum 它通常就說errno值 對映為乙個出錯資訊字串,並返回錯誤此字串 1.2 清單 include include include int main return 0 編譯與執行 2.1...

處理核心出錯資訊

當系統出現錯誤時,核心有兩個基本的錯誤處理機制 oops和panic。1.oops 1 oops訊息包含系統錯誤的詳細資訊 通常oops資訊中包含當前程序的棧回溯和cpu暫存器的內容。ksymoops工具可以將機器指令轉換為 並將堆疊值對映到核心符號。2 使用ksymoops轉換oops資訊 ksy...