c 異常與除錯

2021-08-27 21:35:57 字數 1709 閱讀 1543

[參考]

異常描述

std::exception

該異常是所有標準 c++ 異常的父類

std::bad_alloc

該異常可以通過 new 丟擲。

std::bad_cast

該異常可以通過 dynamic_cast 丟擲。

std::bad_exception

這在處理 c++ 程式中無法預期的異常時非常有用。

std::bad_typeid

該異常可以通過 typeid 丟擲。

std::logic_error

理論上可以通過讀取**來檢測到的異常。

std::domain_error

當使用了乙個無效的數學域時,會丟擲該異常。

std::invalid_argument

當使用了無效的引數時,會丟擲該異常。

std::length_error

當建立了太長的 std::string 時,會丟擲該異常。

std::out_of_range

該異常可以通過方法丟擲,例如 std::vector 和 std::bitset<>::operator。

std::runtime_error

理論上不可以通過讀取**來檢測到的異常。

std::overflow_error

當發生數學上溢時,會丟擲該異常。

std::range_error 當嘗試儲存超出範圍的值時,會丟擲該異常。

std::underflow_error 當發生數學下溢時,會丟擲該異常。

[參考]

#include 

#include

#include

using

namespace

std;

int main() ;

try catch (std::range_error e)

}

執行結果:

terminate called after throwing an instance of

'std::out_of_range'

what(): vector::_m_range_check: __n (which is

3) >= this->size() (which is

3)

使用 set_terminate()

#include 

#include

#include

using

namespace

std;

void terminate_usr()

int main() ;

try catch (...)

}

巨集

含義file

當前源檔名,char字元,使用/fc選項產生全路徑

line

當前原始檔的行號,正數

date

當前編譯日期,char字串,格式:aug 28 2011

time

當前編譯時間,char字串,格式:10:32:12

func

當前函式

function

當前函式

timestamp

最後一次修改當前檔案的時間戳,char字串,格式:sun aug 28 13:05:34 2014

C 四十五 異常處理與程式除錯

程式錯誤型別 1 語法錯誤 2 執行時錯誤 3 邏輯錯誤 程式除錯 程式除錯的主要目的是解決程式中的邏輯錯誤,通過設定斷點,跟蹤觀察程式的執行過程,發現造成邏輯錯誤的具體語句,然後修改程式實現設計目標。設定斷點 斷點是程式暫停執行的地方,當程式執行到斷點位置時,程式暫停執行,進入中斷模式,以便觀察程...

除錯事件與異常的關係

1.異常是除錯事件的一種 2.windows 定義了 9 類除錯事件,分別用以下 9 個常量來 表示 exception debug event 1 create thread debug event 2 create process debug event 3 exit thread debug ...

Python(異常處理與程式除錯)

python標準庫的每個模組都使用了異常,異常在python中除了可以捕獲錯誤,還可以除錯程式。一 python中的異常 異常是指程式中的例外 違例情況。異常機制是指當程式出現錯誤後,程式的處理方法。異常機制提供了程式正常退出的安全通道。當錯誤出現後,程式的流程發生改變,程式的控制權轉移到異常處理器...