—————————
你會處理出錯資訊嗎?哦,它並不是簡單的輸出。看下面的示例:
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...