請問中教聯盟老師 C 程式的異常有何處理技巧

2023-01-18 20:50:39 字數 2082 閱讀 7301

1樓:匿名使用者

中教聯盟老師回答您:處理 c++ 中的異常會在語言級別上碰到少許隱含限制,但在某些情況下,您可以繞過它們。學習各種利用異常的方法,您就可以生產更可靠的應用程式。

保留異常**資訊 在c++中,無論何時在處理程式內捕捉一個異常,關於該異常**的資訊都是不為人知的。異常的具體**可以提供許多更好地處理該異常的重要資訊,或者提供一些可以附加到錯誤日誌的資訊,以便以後進行分析。 為了解決這一問題,可以在丟擲異常語句期間,在異常物件的建構函式中生成一個堆疊跟蹤。

exceptiontracer是示範這種行為的一個類。 清單 1. 在異常物件建構函式中生成一個堆疊跟蹤 // sample program:

// compiler: gcc 3.2.3 20030502// linux: red hat #include#include #include

#include using namespace

c++中異常的處理機制是什麼

c++中丟擲異常好的好處是什麼

2樓:匿名使用者

程式不會顯示錯誤,而是按照你自己設計的錯誤處理方法進行處理,比如顯示「程式出錯,請重試」。提高了使用者介面友好性。

3樓:匿名使用者

如果你丟擲異常但不處理它的話,那沒有什麼好處。如果有整套的異常處理機制(即丟擲、捕獲、處理)的話,好處還是不少的:

「異常處理通常是防止未知錯誤產生所採取的處理措施。異常處理的好處是你不用再絞盡腦汁去考慮各種錯誤,這為處理某一類錯誤提供了一個很有效的方法,使程式設計效率大大提高。 」

4樓:匿名使用者

出錯的時候程式不掛掉

c++程式除錯出現異常中斷 問題提示如下,請問怎麼處理 10

5樓:風若遠去何人留

這種叫空指標異常

一般是對指標值未做判斷就直接使用導致的。

比如 file *fp = fopen... 開啟檔案, 如果開啟失敗, fp就是null

這時如果對fp做fread等操作 就會出這個問題。

建議單步執行,跟蹤出問題變數, 分析原因。

中的 0x7547d36f 處有未經處理的異常: microsoft c++ 異常: 記憶體位置 0x0019ea28 處的 cv::exception?? 10

6樓:匿名使用者

一模一樣的問題,我是將**放到工程目錄(假設工程名為「abc」)下的同名資料夾(名字也叫「abc」,其實是放置*.cpp,*.h的程式檔案的地方)下面時,才正常顯示的。

7樓:

因為你沒把**放到當前路徑下面。

8樓:小橋

這個錯誤實質是記憶體分配錯誤,也就是說你的**沒有匯入記憶體。**為什麼沒有匯入記憶體,最有可能的原因就是**路徑錯誤,建議**和工程檔案放在同一個資料夾下,這樣就可以直接引用**。另外的可能是這算是opencv的一個bug,工程屬性裡面關於帶d和不帶d的lib檔案的附加依賴項的問題,就算配置好了每次想debug和release下都執行還得手動在工程屬性裡面加。

當得到這樣的錯誤時,可以把除錯方式改一改,debug和release互換。或者開啟當前工程(注意是當前工程的屬性頁,不是通用屬性頁)的屬性頁,debug或者release哪個報錯,就把對應的帶d或不帶d的lib新增到【「當前」工程屬性】->【連結器】->【輸入】->【附加的依賴項】下即可。

參考csdn部落格:網頁連結

9樓:

專案的連結你沒配置好吧。

請問c++程式中,一個工程可不可以建立多個原始檔?

10樓:匿名使用者

可以當你某個檔案要用到另外一個檔案的內容時

記得在檔案頭加入#include

11樓:匿名使用者

當然可以!一般程式都需要建立多個原始檔和標頭檔案的!處理視窗的用一個原始檔和標頭檔案,其他方面的又建一個原始檔和標頭檔案!需要在一個檔案中呼叫例外一個檔案時,就如樓上說的做!

C語言程式,請問大家一下,程式中要表示或者用什麼符號呢

就算你是才學,也應bai當知道 duc語言的邏輯或 是兩堅線 zhi 可能dao你是不知從哪輸入吧,初次上機之版前沒接權觸電腦的人可能真找不著,就在回車鍵上邊的那個反斜槓鍵上,shift 就是它 輸兩次就是 邏輯或 邏輯與 邏輯非 邏輯語言就這三個 是問邏輯或麼?是這個 邏輯與是 c語言程式,程式中...

c語言的語句結束標誌是什麼,C語言程式中的語句都用什麼作為結束符?

c語言的語句結束標誌是分號。在c語言中分號 用於結束一個語句,就如同平日常用的句號 作用一樣。c程式是由c語言寫的,能完成特定功能的一套完整的指令。組成這些指令的基本元素,稱為語句。一個c程式必須要有標頭檔案 一個主程式,主程式必須要以 結尾。兩者之間是語句文字。每行語句必須以 分號結尾。注意,所有...

請問C51程式中0x0000和0x00的區別和具體含義

嗯,0x0000,應該是地址,或者sfr16的數 0x00,是十六進位制數 微控制器中0x00和0x01有什麼區別 這是16進位制 0x00 轉到二進位制是0000 0000 0x01轉到二進位制0000 0001 p0 1 其實是等於0x01 當然與後者不一樣。微控制器中0x00和0x01有什麼區...